jquery - 在两个 onclick 函数之间切换

标签 jquery html css

我在 HTML 中创建了两个按钮,并编写了一些 jQuery,以便当用户单击其中一个按钮时,新的 CSS 规则将应用于该按钮。此代码在下面工作:

$('#approve').on('click', function(){
    $('#approve:hover').css("background-color", "#24ce3a")
    $('#approve:hover').css("color","#FFF")
});
$('#reject').on('click', function(){
    $('#reject:hover').css("background-color", "#e32e10")
    $('#reject:hover').css("color", "#FFF")
});

如果单击#approve,我想给它一个新颜色并禁用#reject 按钮。下次单击 #approve 时,我想重置为原始样式,并重新启用 #reject 按钮。 #reject 按钮应该有类似的行为:点击时切换它自己的状态,并在它处于事件状态时禁用 #approve 按钮。

有什么办法可以实现吗?

最佳答案

当其中一个回调函数被触发时,通过向其添加一个类使其禁用另一个回调函数。下次单击时,通过删除类重新启用该按钮。

var approveFunc = function() {
  if ($(this).is(".disabled")) {
    return;
  }
  $(this).toggleClass("active");
  $("#reject").toggleClass("disabled");
};

var rejectFunc = function() {
  if ($(this).is(".disabled")) {
    return;
  }
  $(this).toggleClass("active");
  $("#approve").toggleClass("disabled");
};

$('#approve').on('click', approveFunc);
$('#reject').on('click', rejectFunc);
div {
  color: blue;
  background-color: pink;
}
#approve.active {
  background-color: #24ce3a;
  color: #FFF;
}
#reject.active {
  background-color: #e32e10;
  color: #FFF;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="approve">Approve</div>
<div id="reject">Reject</div>

关于jquery - 在两个 onclick 函数之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26703741/

相关文章:

jquery - 例如在<a>标签内添加<span> + </span>标签

html - 如何相对于内部绝对高度调整相对div高度?

javascript - 减少 CSS 中两个 block 之间的间隙

javascript - 创建一个计算浏览器视口(viewport)尺寸的动画

html - 使用嵌入式 Ruby 代码 (erb) 缩进 HTML

html - 居中 div 旁边的 DIV

html - 如何使整个div成为超链接

javascript - 使用 PreventDefault 禁用鼠标滚轮但无法启用它?

javascript - 如何 append 和更改 append 数字的属性(在 css 中)

html - Golang HTML 模板嵌套范围循环