javascript - HTML/JQuery:禁用跨度/按钮单击(将其变灰并禁用单击)
问题描述
我有两个跨度在单击时显示某些信息,我不确定如何在单击另一个时将跨度变灰以看起来像一个禁用的按钮。我的代码如下。我以为我可以做类似的事情$("#toggle-odd").attr("disabled", true")
,$("toggle-odd").unbind("click")
但似乎都没有给我想要的结果。
$("document").ready(function(){
$("#odd").hide();
$("#even").hide();
});
$("#toggle-odd").click(function(){
$("#even").hide();
$("#odd").toggle();
});
$("#toggle-even").click(function(){
$("#odd").hide();
$("#even").toggle();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<span class="btn btn-contrast" style="background-color: green" href="#" id="toggle-odd"> Show Odd Objects </span>
<span class="btn btn-contrast" style="background-color: red" href="#" id="toggle-even"> Show Even Objects </span>
<p id="odd">
Odd
</p>
<p id="even">
Even
</p>
解决方案
span 标签用于显示文本。在这里你应该使用按钮。如果您想“以图形方式”禁用另一个按钮,只需添加一个类(我命名它disabled
)。如果您想真正禁用它,请添加$("#your-button").attr("disabled","disabled");
在下面的例子中,我确保我们可以重新激活一个按钮,但是如果你想保持它处于非激活状态,你只需要提取第一个条件的代码。
$("document").ready(function(){
$("#odd").hide();
$("#even").hide();
});
$("#toggle-odd").click(function(){
if($("#odd").css("display") == "none"){
$("#toggle-even").attr("disabled","disabled");
$("#toggle-even").addClass("disabled");
}else{
$("#toggle-even").removeAttr("disabled");
$("#toggle-even").removeClass("disabled");
}
$("#even").hide();
$("#odd").toggle();
});
$("#toggle-even").click(function(){
if($("#even").css("display") == "none"){
$("#toggle-odd").attr("disabled","disabled");
$("#toggle-odd").addClass("disabled");
}else{
$("#toggle-odd").removeAttr("disabled");
$("#toggle-odd").removeClass("disabled");
}
$("#odd").hide();
$("#even").toggle();
});
.disabled{
background-color: grey;
}
#toggle-odd{
background-color: green
}
#toggle-even{
background-color: red
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<button class="btn btn-contrast" id="toggle-odd"> Show Odd Objects </button>
<button class="btn btn-contrast" id="toggle-even"> Show Even Objects </button>
<p id="odd">
Odd
</p>
<p id="even">
Even
</p>
推荐阅读
- html - 上传到网络服务器时链接文件不起作用
- ionic-framework - ion-libel positon="floating" 不适用于离子输入占位符
- matplotlib - 如何在图例和图形上添加标记 - matplotlib
- java - 使用下一个和任意指针克隆 LinkedList
- java - HttpUrlConnection 出现 503 错误,但在浏览器上加载网站
- node.js - 在节点检查器上运行 Chrome 开发工具时,内存分析器被禁用
- python - 在 python turtle 中,我的 pong player1 不会关闭
- google-chrome - 当我尝试在我的 chrome 浏览器 (MacOS) 中连接到 direcline.botframework.com 时,“WebSocket 打开握手超时”
- android - 如何在我的 android 应用程序中创建一个页面,显示 Play 商店中我的应用程序的当前评论和评分列表
- python - 如何将列表中的日期与今天的日期进行比较?