2
<div class="pad" id="test" contenteditable="true" spellcheck="false">
       <div id="a0" class="fif" > text0</div>
       <div id="a1" class="fif" >text1</div>
       <div id="a2" class="fif" >text2</div>
     </div>

上記のコードのように、内部にいくつかの子 div を持つcontenteditable divがあります。入力している子 divのIDを返す jQuery が必要です。たとえば、text1を編集している場合は、 "a1"が返されます (戻ります) 。

使用すれば思い通りに動作します

var clicked;
$('#test').click(function(event){
   clicked = $(event.target);
   alert(clicked.attr('id'));
});`

ここに示すように

http://jsfiddle.net/bernie1227/cK69Q/ (つまり、クリックすると id="a1" が返されます)を使用すると、同様の方法で機能しません

var clicked;
$('#test').keypress(function(event){
   clicked = $(event.target);
   alert(clicked.attr('id'));
});

ここに示すようにhttp://jsfiddle.net/hari_OM/bLgkv/ つまり、入力すると、「id=a1」ではなく「id=test」が返されます

event.target.idand を使用してみましたが、 id="test" ではなくid="a1"$(this).attr("id")を返しますが、 "a1"を取得する必要があります。 また、子 div 内に注入して、定義された関数から取得しようとしましたが、機能しませんonkeypress="funcname(this.id)"

4

2 に答える 2

0

http://jsfiddle.net/bernie1227/cK69Q/を使用して、イベントのターゲットを追跡することに依存するソリューションを作成しましたevent.target

于 2013-03-03T19:41:22.283 に答える