我有一个关于语义的问题,我们可以使用.on ('event', fn)将jQuery事件绑定到节点,所以我想知道是否使用例如:$node.on('click', fn)比使用$node.click (fn)更具语义性且更好?
发布于 2012-01-23 06:10:51
使用.on比使用.click或旧的Event API要好得多。对jQuery本身的解释:http://blog.jquery.com/2011/11/03/jquery-1-7-released/
如果您有一个包含1000个列表项的列表,并执行如下代码
$('li').click(function() {
console.log('clicked');
});然后每个单独的列表项都会得到这个eventcallbackfunction函数。
但是如果你使用
$('ul').on('click', 'li', function() {
console.log('clicked');
});现在只有<ul>获得eventcallbackfunction函数,但是如果您单击ul jQuery过滤器并查看您是否单击了li,则您将获得回调,如果没有,您将不会获得回调。
发布于 2012-01-23 06:10:08
在您的示例中,bind()将是理想的(就语义而言),因为它很有意义,因为您附加了一个事件侦听器。它也有可互换的含义,我可以绑定一个方向侦听器或滚动观察者。On可以有(立即启动某件事或立即调用)的意思。
http://api.jquery.com/bind/
https://stackoverflow.com/questions/8965147
复制相似问题