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');
});
答案 0 :(得分:4)
以这种方式使用委托:
$(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中添加/修改的任何未来元素。
您可以阅读有关活动delegation using on
here
答案 1 :(得分:2)
$('.callEdit').on('click.doSmth', function(){
var $that = $(this);
if ($that.hasClass('editAsk')) {
// do smth
} else {
// do smth else
}
$that.toggleClass('editAsk editDone');
});
一个事件,无需使用委托。这是另一种方法。