我过去一直用过:
$(selector).on('click', function )
但是今天我把它绑定在docready之后的一个对象上(来自ajax一个调用)。绑定不会坚持。
谷歌搜索后我看到了:
$(document).on( event, selector, function )
语法。更改为此后,我的代码正在运行。
我和jquery一直休息,觉得我错过了什么,这两种方法有真正的区别吗?它们是什么?
后一种语法现在是对新元素进行绑定的唯一方法(用于服务的livequery插件的目的)吗?
答案 0 :(得分:16)
第一个示例将事件侦听器直接绑定到元素。它为每个元素添加了一个单独的侦听器,它只会在添加侦听器时响应DOM中元素的事件。
第二个示例将事件侦听器绑定到文档对象。它将检查任何冒泡到文档对象的事件,并在触发函数之前测试事件启动的元素是否与选择器匹配。绑定侦听器时,不要求元素存在于文档中。可以捕获事件(由另一个侦听器),并在传播到文档对象之前停止传播。