0

使用しています

$(document).bind('click','.q',function(e){console.dir(e.target);});

私のhtmlはそうです:

<div class="b"style="width:1000px;height:1000px">
    <div class="q"style="width:10px;height:10px"></div>
    <div class="q"style="width:10px;height:10px"></div>
    more .q added later...

</div>

しかし、.b の任意の場所をクリックすると (.q が追加される前)、コンソールに .b の e.target のディレクトリが表示されます。

なぜ?

live() が削除されたため、このコードを使用しています。

だから私のコードは

$('.q').live('click',function(e){console.dir(e.target);});
4

2 に答える 2

3

bindはデリゲート イベントをサポートしていないため、2 番目のパラメーターはeventData. の代わりに
使用する必要があります。onbind

// Not document for better performance.
$('div.b').on('click','.q', function(e){console.dir(e.target);});

eventDataでパラメーターに到達できます: e.data、それをコンソールすると".q"、コンソールに表示されます。

于 2013-10-07T12:50:14.303 に答える