jquery中ON方法的使用
以前在jquery中绑定动态元素一直使用live,现在才发现live已经被抛弃了,现在如果想实现live方法,可以使用最新的ON方法,具体使用如下:
替换live()
live()写法
$('#list li').live('click', '#list li', function() {
//function code here.
});
//function code here.
});
on()写法
$(document).on('click', '#list li', function() {
//function code here.
});
这里的关键就是第二个参数'selector'在起作用了。它是一个过滤器的作用,只有被选中元素的后代元素才会触发事件。
替换delegate()
delegate()是1.4引入的,目的是通过祖先元素来代理委派后代元素的事件绑定问题,某种程度上和live()
优点相似。只不过live()是通过document元素委派,而delegate则可以是任意的祖先节点。使用on()实现代理的写法和
delegate()基本一致。
delegate()的写法
$('#list').delegate('li', 'click', function() {
//function code here.
});
//function code here.
});
on()写法
$('#list').on('click', 'li', function() {
//function code here.
});
//function code here.
});
貌似第一个和第二个参数的顺序颠倒了一下,别的基本一样。