2017-08-24 15 views
1

私はTINYMCEにkeydownイベントをアタッチしたいので、ユーザーがキーボードでEnterキーを押し、keydownを起動した要素の親要素が特定のクラスIユーザーにメッセージ(アラート)を表示します。TINYMCEでkeydownイベントを受け取った要素を取得する方法

はこれまでのところ、グーグルでsearhingた後、私はこの思い付いた:

editor.on("keydown",function(e) { 

    if ( (e.keyCode == 13) && (CONDITIONAL) ) { 

     alert('You are not supposed to do this.'); 

    } 

}); 

私の問題は、この関数はイベントを発射した最も内側の(最も深い)要素を返さないということです。どうすれば入手できますか?

例えば、私はTinyMCEの内部で、このHTMLを編集しているしている:

<div id="xxx"> 

    <p class="paragrapch"> 

     <div> 

      <span id="zzz">USER IS TYPING HERE</span> 

     </div> 

    </p> 

</div> 

と仮定ユーザーが要素のスパン#1 ZZZ内部に何かを入力している、どのように私はこの要素にはKeyDownイベントの火を作ることができ、私は見ることができますので、誰かがクラス「段落」を持っているかどうかを確認してください。 jQueryを使って

これは単に使用し、かなりの最も簡単なです:私はここに掲載最初のコードを使用している場合

$(this).parents(".paragraph").length 

しかし、「$(これは)」最も内側の要素(最深部)ではない、それはですボディエレメント。あなたのカーソルを含む要素を取得する必要があります

答えて

1

editor.selection.getNode() 

を使用してみてください...。

+0

もう一度私の友人のソリューションは魅力的に機能しました!追加コードは必要ありません。ラインは驚くほどうまく機能しました! – Samul

関連する問題