目前使用jQuery,当我需要在发生点击时做一些事情时,我会像这样…
$(".close-box").click( function() { MoneyBox.closeBox(); return false; });
我正在看别人在项目上有的代码,他们这样做是…
$(".close-box").live("click", function () { MoneyBox.closeBox(); return false; });
请注意,就我所知,它似乎在做相同的事情,除了它们使用的是live()函数(现在已弃用并且jQuery文档说要使用live()函数),on()但是无论哪种方式,为什么要使用live / on()而不是我的第一个示例?
on()
因为您可能具有动态生成的元素(例如,来自AJAX调用),所以您可能希望具有以前绑定到同一元素选择器的相同单击处理程序,然后使用on()带选择器参数“删除” click事件
on()``click()如果您未指定选择器,也可以是同义词:
on()``click()
$('.elementClass').click(function() { // code });
与…同义
$('.elementClass').on('click', function() { // code });
从某种意义上说,它仅将处理程序一次添加到所有具有class的元素上elementClass。elementClass例如$('<div class="elementClass" />'),如果您有一个新的源,则处理程序将不会绑定到该新元素上,则需要执行以下操作:
elementClass
$('<div class="elementClass" />')
$('#container').on('click', '.elementClass', function() { // code });
假设#container是.elementClass祖先
#container
.elementClass