[编辑] 此代码可以正常工作
在同一个事件/类中找到了多个on()处理程序。 [/编辑]
我使用以下代码:
$selector.on('click', '.heya', function($e){
alert('heya');
jQuery(this).attr('class', 'byebye');
});
$selector.on('click', '.byebye', function($e){
alert('byebye');
jQuery(this).attr('class', 'heya');
});
现在单击其中一个元素一次正常工作,但再次单击它时会调用两个回调。不知怎的,前一个" on()"触发器没有被删除。谁知道为什么? 我知道我可以用不同的方式解决这个问题,但这将是最干净的解决方案......
答案 0 :(得分:2)
改为使用addClass
和removeClass
方法。
$selector.on('click', '.heya', function($e){
alert('heya');
$(this).removeClass("heya").addClass("byebye");
});
$selector.on('click', '.byebye', function($e){
alert('byebye');
$(this).removeClass("byebye").addClass("heya");
});
答案 1 :(得分:0)
试试这个会帮助您解决问题。
$(".heya").on('click', function($e){
alert('heya');
$(this).attr('class', 'byebye');
});
$(".byebye").on('click', function($e){
alert('byebye');
$(this).attr('class', 'heya');
});
答案 2 :(得分:-1)
试试这段代码:
$(".heya,.byebye").on('click', function($e){
$(this).toggleClass('byebye heya');
});
<强> JSFiddle 强>