更改为.on()后,.live()触发事件不起作用

时间:2015-08-12 20:33:53

标签: jquery

我想从动态表中删除我正在使用.live()方法的行,并且它工作正常。 但是现在.live方法已被弃用,所以我想使用.on(),但它不起作用。

    $(".delete").live('click', function(){
        var cresponse = confirm("Confirm that you want to delete a deal.");
        if(cresponse) {
            var cid = $(this).attr('xtarget');
            userRolesUpd(cid, 'Y');
        }
    });

我改为:

    $(".delete").on('click', function(){
        var cresponse = confirm("Confirm that you want to delete a deal.");
        if(cresponse) {
            var cid = $(this).attr('xtarget');
            userRolesUpd(cid, 'Y');
        }
    });

它仅适用于一行,在更新表行后,它将无法正常工作

1 个答案:

答案 0 :(得分:1)

on函数使用错误 - 更新代码时请参阅http://api.jquery.com/live/了解正确的等效项。

  $(".delete").live('click', function ..)
//   ^-- 'live' selector

相当于

  $(document).on("click", ".delete", function ..)
//  ^-- common ancestor    ^-- 'live' selector

有一个更精致的父母,而不是“文件”是建议使用它。请参阅on文档。