Jquery attr() 第二次不工作



jQuery attr()第二次不起作用, editAsk事情正在起作用但是editDone不起作用。 editDone属性是在.editAsk过程之后出现的。

    $('.editAsk').on('click', function(){
        var $this = $(this);
        $this.attr('class', 'callEdit editDone');
    });
    $('.editDone').on('click', function(){
        var $this = $(this);    
        $this.attr('class', 'callEdit editAsk');
    });

以这种方式使用委派:

$(document).on('click', '.editAsk', function(){
    var $this = $(this);
    $this.attr('class', 'callEdit editDone');
});
$(document).on('click', '.editDone', function(){
    var $this = $(this);    
    $this.attr('class', 'callEdit editAsk');
});

这样做将允许您将事件处理程序委托给现有元素,或者将在 DOM 中添加/修改的任何未来元素。

您可以在此处阅读有关使用on的事件委派的更多信息

$('.callEdit').on('click.doSmth', function(){
    var $that = $(this);
    if ($that.hasClass('editAsk')) {
        // do smth
    } else {
        // do smth else
    }
    $that.toggleClass('editAsk editDone');
});

一个事件,无需使用委派。只是另一种方法。

最新更新