jQuery将应用程序从“实时”切换到“开启”方法

alc*_*ion 0 jquery javascript-events

可能的重复:
jQuery 1.7-将live()转换为on()

只需将我的代码从“实时”切换为“开启”,某些事件就不再触发,这是一个示例,有人可以帮忙说一下这是怎么回事吗?以前,使用“实时”而不是“开启”方法可以100%正确地工作。

$('a#doBulkLink').on('click', function (e) {

    createLabelsWithDestinationFolders();

    $('label.moveDocDestinationFolder').on('click', function (e) {

        doSomeAjaxStuffWithLabels();
        e.stopImmediatePropagation();  

    });

    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

谢谢。

Mat*_*att 5

您不能替换live()on()改变功能名称简单on(); 签名也会发生变化。

$('selector').live('event', function () {

});
Run Code Online (Sandbox Code Playgroud)

...变成...

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

});
Run Code Online (Sandbox Code Playgroud)

在当前形式下,您所拥有的是直接替代的bind()click()change()等是别名)。因此,将处理程序直接绑定到元素,而不是将处理程序绑定到document并利用事件冒泡(这样做是这样live()做的)。