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');
});
一个事件,无需使用委派。只是另一种方法。