参考:.on()
众多历史问题(如.live()),不一一说明,只想说,我们给一个对象绑定事件的时候可以用如下方式:
<code>
$( "#dataTable tbody tr" ).on( "click", function() {
console.log( $( this ).text() );
});
</code>
但是,这个用法有个局限性,就是你要绑定事件的对象必须在DOM当中已经存在(加载完成),否则事件就绑不上去。为了解决这个局限性,我们可以使用委托事件,代码如下:
<code>
$( "#dataTable tbody" ).on( "click", "tr",function() {
console.log( $( this ).text() );
});
</code>
也就是说,.on前面的对象是一定存在的,当点击tr元素时,事件会向上冒泡到tbody。
委托事件,除了有上面这个好处外,还有一个好处就是:
加入有1000个tr,第一种方式会给这个10000个tr都绑上click事件,而第二种方式只会给tbody绑上click事件,每一个tr通过冒泡到tbody即可实现click事件啦!