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,里面有一些子 div。我需要一个 jQuery 来返回我正在输入的子 div 的id。例如,如果我正在编辑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=test”而不是“id=a1”

我尝试使用event.target.id$(this).attr("id")但他们返回id="test"而不是id="a1",但我需要得到"a1"。我还尝试onkeypress="funcname(this.id)" 在子 div 中注入并从定义的函数中检索它,但它不起作用

4

2 回答 2

0

我编写了一个依赖于跟踪事件目标的解决方案,使用event.target:http: //jsfiddle.net/bernie1227/cK69Q/

于 2013-03-03T19:41:22.283 回答
0

有没有调查过这个?DOMCharacterDataModified

$(document).on('DOMCharacterDataModified',  function( event ) {
    if($(event.target).parent().attr('id') === 'parentid') {
        console.log(
            'target',$(event.target),"\r"
        );  
    }
});
于 2014-02-01T07:08:30.050 回答