JQuery单击具有不同类的相同按钮

时间:2016-11-06 17:13:05

标签: javascript jquery button click

我有一个类名为测试按钮测试按钮 - 检查的按钮。点击测试按钮 - 检查后,它应该执行某些操作并替换为类测试按钮 - 重置

对于测试按钮 - 重置我想写另一个功能,但它不起作用。因为,上一个函数再次执行。

$(".test-button--check").on("click", function() {
  alert("Check is clicked");
  $(this).removeClass("test-button--check").addClass("test-button--reset");
});

$(".test-button--reset").on("click", function() {
  alert("Reset is clicked");
  $(this).removeClass("test-button--reset").addClass("test-button--check");
});

我该怎么办?

由于

3 个答案:

答案 0 :(得分:1)

尝试使用.off()删除事件处理程序,在这种情况下,单击它。

应该是这样的:

$('.test-button.test-button--reset').off().click(function() {...});

答案 1 :(得分:1)

您可以通过这种方式在document.ready中编写代码

$(".test-button--check .test-button--reset").on("click", function(e) {
   e.preventDefault();
   var obj=$(this);
   if($(obj).hasClass('test-button--check')){
       alert("Check is clicked");
       $(this).removeClass("test-button--check").addClass("test-button--reset");
   }
   if($(obj).hasClass('test-button--reset')){
       alert("Reset is clicked");
       $(this).removeClass("test-button--reset").addClass("test-button--check");
   }
});

答案 2 :(得分:1)

我认为这会奏效:

var check = function checkFunc() {
alert('Check is clicked!');
$(this).addClass('test-button--reset').removeClass('test-button--check');
$('.test-button--reset').unbind('click',check);
$('.test-button--reset').bind('click',reset);
}
var reset = function resetFunc() {
alert('Reset is clicked!');
$(this).addClass('test-button--check').removeClass('test-button--reset');
$('.test-button--check').unbind('click',reset);
$('.test-button--check').bind('click',check);
}
$('.test-button--check').bind('click',check);

使用bind和unbind