当我“ removeClass('下面')”时,它会删除css类,但当我再次单击该对象时,它会执行相同的操作。
我试图通过删除css代码来取消点击功能的工作能力。我做错了什么?
$('.below').click(function() {
$(this).removeClass('below');
$('#welcome').removeClass('fadeInLeft, bounceOutLeft').addClass('fadeOutLeft');
$('#welcome_search').delay('500').animate({"top": "-=140px"},"slow");
});
我的html看起来与此相似:
<div id="welcome_item" class="below">
stuff
</div>
请帮帮忙,谢谢。
如果我想在更换课程后重新点击点击该怎么办?
$('.below').click(function() {
$(this).unbind('click').removeClass('below').addClass('above');
$('#welcome').removeClass('fadeInLeft bounceOutLeft').addClass('fadeOutLeft');
$('#welcome_search').delay('500').animate({"top": "-=140px"},"slow");
});
$('.above').click(function() {
$(this).removeClass('above').addClass('below');
$('#welcome_search').animate({"top": "+=140px"},"slow");
$('#welcome').removeClass('fadeInLeft bounceOutLeft fadeOutLeft').delay('500').addClass('fadeInLeft');
});
答案 0 :(得分:3)
运行jQuery代码时,click
事件已绑定到具有类.below
的元素,并且每次单击该元素时,jQuery实际上都不会检查该元素已经存在,因此删除类不会对此有所帮助。
您可以使用unbind
代替
$('.below').click(function() {
$(this).unbind('click');
$('#welcome').removeClass('fadeInLeft, bounceOutLeft').addClass('fadeOutLeft');
$('#welcome_search').delay('500').animate({"top": "-=140px"},"slow");
});
答案 1 :(得分:1)
答案 2 :(得分:0)
您也可以使用
$('.below').live("click",function(){});
答案 3 :(得分:0)
删除课程时,只需解除绑定即可。
$('#foo').unbind('click');
所以你的js代码应该是这样的。
$('.below').click(function() {
$(this).unbind('click');
$(this).removeClass('below');
$('#welcome').removeClass('fadeInLeft, bounceOutLeft').addClass('fadeOutLeft');
$('#welcome_search').delay('500').animate({"top": "-=140px"},"slow");
});