jquery $(document).on('click',selector,...)vs $(selector).on('click',

时间:2013-11-17 15:58:39

标签: javascript jquery ajax

我过去一直用过:

$(selector).on('click', function )

但是今天我把它绑定在docready之后的一个对象上(来自ajax一个调用)。绑定不会坚持。

谷歌搜索后我看到了:

$(document).on( event, selector, function ) 

语法。更改为此后,我的代码正在运行。

我和jquery一直休息,觉得我错过了什么,这两种方法有真正的区别吗?它们是什么?

后一种语法现在是对新元素进行绑定的唯一方法(用于服务的livequery插件的目的)吗?

1 个答案:

答案 0 :(得分:16)

第一个示例将事件侦听器直接绑定到元素。它为每个元素添加了一个单独的侦听器,它只会在添加侦听器时响应DOM中元素的事件。

第二个示例将事件侦听器绑定到文档对象。它将检查任何冒泡到文档对象的事件,并在触发函数之前测试事件启动的元素是否与选择器匹配。绑定侦听器时,不要求元素存在于文档中。可以捕获事件(由另一个侦听器),并在传播到文档对象之前停止传播。