$(document).on('click', '#searchbtn', function (e){}
和 $('#searchbtn').on('click', function(e){}
的区别在于事件绑定的时间点和绑定范围不同。
$(document).on('click', '#searchbtn', function (e){}
是将事件绑定在文档对象上,这样无论何时用户点击文档中有 id
为 #searchbtn
的元素,都可以触发事件进行搜索操作。
而 $('#searchbtn').on('click', function(e){}
是将事件绑定在 #searchbtn
元素上,在元素动态创建之前,该元素并不存在,因此无法使用该方式绑定事件。
绑定事件时,建议使用 $(document).on()
这种方式,可以避免因为元素还未生成造成的无法绑定事件的问题
对于无论何时的解释,举个例子
// 重载表格数据
table.reload('test', {
where : {
Specification : specification
}
});
这是layui框架重载表格数据的代码(不用这个框架也没关系),重载之后, $('#searchbtn').on('click', function(e){}
会因为重载导致监听器失效,而$(document).on('click', '#searchbtn', function (e){}
可以顺利完成监听