按钮需要双击才能更改
Button needs double click to change?
我正在尝试制作一个带有按钮的下拉"菜单"。按钮从 + 更改为 - 取决于是否显示。问题是,如果我按下一个按钮,没关系,但是当我按下另一个按钮时,它不会下拉或更改,只是在我单击两次时会更改。法典:
<style type="text/css">
#persona{
width: 100px;
height: 50px;
display: none;
}
#productes{
width: 100px;
height: 50px;
display: none;
}
button{
display: block;
margin-bottom: 10px;
width: 50px;
border: none;
}
</style>
</head>
<body>
<button id="b_persona" onclick="show_hide('persona','b_persona')">+</button>
<div id="persona">
</div>
<button id="b_productes" onclick="show_hide('productes','b_productes')">+</button>
<div id="productes">
</div>
<script type="text/javascript">
var show_persona = true;
var show_producte = true;
function show_hide (id,b_id) {
if(!show_persona){
document.getElementById(id).style.display = "none";
document.getElementById(b_id).innerHTML = "+";
show_persona = true;
}else{
document.getElementById(id).style.display = "block";
document.getElementById(b_id).innerHTML = "-";
show_persona = false;
}
if(!show_producte){
document.getElementById(id).style.display = "none";
document.getElementById(b_id).innerHTML = "+";
show_producte = true;
}else{
document.getElementById(id).style.display = "block";
document.getElementById(b_id).innerHTML = "-";
show_producte = false;
}
}
</script>
</body>
问题基本上是当我单击一个按钮然后单击另一个按钮时。有什么想法吗?谢谢大家!
一次调用 show_hide
将更改两个标志的值。但是,只有一个<div>
的属性将被更改,并且将更改两次(在每个if
语句中)。试试这个:
function show_hide (id,b_id) {
if(id === 'persona'){
if(!show_persona){
document.getElementById(id).style.display = "none";
document.getElementById(b_id).innerHTML = "+";
show_persona = true;
}else{
document.getElementById(id).style.display = "block";
document.getElementById(b_id).innerHTML = "-";
show_persona = false;
}
}
if(id === 'productes'){
if(!show_producte){
document.getElementById(id).style.display = "none";
document.getElementById(b_id).innerHTML = "+";
show_producte = true;
}else{
document.getElementById(id).style.display = "block";
document.getElementById(b_id).innerHTML = "-";
show_producte = false;
}
}
}
也可以
这样做
<button id="b_persona" class="all-btn" onclick="show_hide('persona','b_persona')">+</button>
<div id="persona" class="common-class" style="background-color:yellow">
</div>
<button id="b_productes" class="all-btn" onclick="show_hide('productes','b_productes')">+</button>
<div id="productes" class="common-class" style="background-color:red">
</div>
.JS:
<script type="text/javascript">
var show_persona = true;
var show_producte = true;
function show_hide (id,b_id) {
var arrAllEle = document.getElementsByClassName('common-class');
var arrAllBtn = document.getElementsByClassName('all-btn');
for(var i =0;i<arrAllEle.length;i++){
arrAllEle[i].style.display ="none";
}
for(var i =0;i<arrAllBtn.length;i++){
arrAllBtn[i].innerHTML ="+";
}
document.getElementById(id).style.display = "block";
document.getElementById(b_id).innerHTML = "-";
}
</script>
相关文章:
- 当单选按钮的标签可单击时双击
- 可点击按钮表的问题,需要防止双击聚焦按钮,同时保持以下按钮可点击
- JavaScript:如何防止双击或禁用按钮
- 如何阻止双击asp.net按钮
- 开始按钮用于启用和恢复动画,而无需在双击时再次重复该功能(javascript)
- 对 iPhone 耳机在 JavaScript 中的下一个按钮(双击)做出反应
- 浏览器后退按钮 单击到双击使用 JavaScript
- MVC - 用户双击“提交”按钮时出现问题
- 防止双击带有挖空.js按钮
- 按钮需要双击才能更改
- 检查按下了哪个鼠标按钮,如果是双击
- 使用slidetoggle()双击按钮
- 在firefox中,将数据输入到充当单选按钮的文本框中需要双击
- 双击asp.net按钮后应用css类
- 停止用Javascript双击提交按钮
- 如何在单击按钮后再次动态单击按钮(将单个单击视为双击)
- 谷歌快速iPad按钮双击问题
- 当用户双击提交按钮时,需要避免向服务器提交表单两次
- 防止使用asp.net javascript双击按钮
- 防止在javascript中双击按钮