Jquery改变.live到.on,

时间:2012-03-29 22:23:30

标签: jquery

我正在尝试将我的所有.live()更改为.on(),因为之前已弃用。

我很难理解它是如何工作的。在我使用此代码之前,它工作得很好......

$('#lightBoxClose').live('click', function() {
    $('#lightBox').fadeOut();
});

所以我尝试将其更改为,

$('#lightBoxClose').on('click', function() {
    $('#lightBox').fadeOut();
});

但它没有用,任何人都可以解释我应该做的事情。

2 个答案:

答案 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();
});