我在使用此代码时遇到了一些问题
$("#click").bind('mousedown mouseup mouseover', function(e) {
if(e.type === 'mouseover'){
$(this).addClass('open'); //works!
}
if(e.type === 'mousedown'){
$(this).removeClass().addClass('closed'); //works!
}
if(e.type === 'mouseup'){
$(this).removeClass().addClass('open');
// The above line doesn't work :(
}
});
Demo here
此代码仅适用于mouseover,mousedown和 NOT 用于mouseup。当我取消注释$(this).removeClass().addClass('open');
时,mousedown事件也会停止触发。
任何人都知道问题可能是什么?
答案 0 :(得分:3)
修正:http://jsfiddle.net/U544t/2/
您需要删除不需要的课程,然后添加您所做的课程。你最终得到了同时包含open
和closed
的div,因此它只显示了已关闭的图标。
答案 1 :(得分:0)
除非我遗漏某些内容,否则您可以使用toggleClass()更有效地执行此操作,而不是自己完成所有添加/删除操作。而且你可能不需要两个类,只需要一个默认状态,而.open类则需要在触发时触发活动。