删除了.live()$(文档).bind('click',selector)问题

时间:2013-10-07 12:45:56

标签: bind jquery

我正在使用

$(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之前)我得到我的控制台给我e.target .b的目录

为什么吗

我正在使用此代码,因为现在删除了live()。

所以我的代码就是

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

2 个答案:

答案 0 :(得分:3)

bind不支持委托事件,因此您的第二个参数是eventData 您应该使用on代替bind

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

您可以使用eventData访问e.data参数,如果您进行控制,则会在控制台中看到".q"

答案 1 :(得分:1)

bind语法编写

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

存在 改变

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

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

参考 On bind