我正在尝试将我的所有.live()
更改为.on()
,因为之前已弃用。
我很难理解它是如何工作的。在我使用此代码之前,它工作得很好......
$('#lightBoxClose').live('click', function() {
$('#lightBox').fadeOut();
});
所以我尝试将其更改为,
$('#lightBoxClose').on('click', function() {
$('#lightBox').fadeOut();
});
但它没有用,任何人都可以解释我应该做的事情。
答案 0 :(得分:10)
您必须绑定到绑定时已存在的元素,并将目标选择器作为第二个参数传递。该元素必须是最终点击目标的祖先,因此它可以捕获起泡事件。这种技术称为委托。
例如,使用document
元素:
$(document).on('click', '#lightBoxClose', function() {
$('#lightBox').fadeOut();
});
答案 1 :(得分:2)
请在发布前使用搜索,因为它在SO周围发布。
请参阅:JQuery switching application from "live" to "on" method
$(document).on('click', '#lightBoxClose', function() {
$('#lightBox').fadeOut();
});