jQuery存在一个令人困惑的问题,基本上这个代码被添加到2个元素中,并且工作正常,但如果你单击一个单独的元素我想它不工作,我想从这些元素中删除类会阻止它们的工作,但即使没有上课,他们仍在工作......这里有一些代码。
$(".q1a1, .q1a3").click(function (e) {
e.preventDefault();
$(this).animate({ backgroundColor: "#db384b" }, 1000);
$(this).animate({ backgroundColor: "#0F437D" }, 2000);
$(this).children('.wrong').fadeIn(1000).fadeOut(2000);
});
^我希望在下面的代码被点击后这段代码不起作用(如果这样做有意义)
$(".q1a2").click(function (e) {
e.preventDefault();
$(this).animate({ backgroundColor: "#00a6eb" }, 800);
$('.q1a2 .correct').show();
$('.q1a1, .q1a3 ').removeAttr("class");
});
有什么想法吗?
答案 0 :(得分:1)
尝试做一个.unbind()。看起来像这样。
$('。q1a1,.q1a3')。unbind('click');
您可以阅读有关.unbind()http://api.jquery.com/unbind/
的更多信息答案 1 :(得分:0)
您可以在一个单独的函数中声明您的处理程序,类似:
var SomeFunction = function(e) {
e.preventDefault();
// your function code goes here
$(this).unbind(SomeFunction); // and this removes the handler from the element on the first click
};
$(".q1a1, .q1a3").click(SomeFunction);
答案 2 :(得分:0)
删除该类将无济于事,因为您已将click事件附加到元素。
您应该使用unbind删除
$('.q1a1, .q1a3 ').unbind("click");