我需要在两个div之间更改显示样式的无限时间。第一个变化是正常的,但向后变化不起作用。 另外,我不能使用链接到明确的div,因为我有几个相同的div。
<script type="text/javascript">
function func(el){
if (smth != true) {var smth = false;}
if (smth == false) {
el.firstElementChild.style.display = 'none';
el.lastElementChild.style.display = 'block';
smth = true;
} else {
el.firstElementChild.style.display = 'block';
el.lastElementChild.style.display = 'none';
smth = false;
}
}
</script>
<div onClick="func(this)">
<div>1</div>
<div style="display:none;">2</div>
</div>
答案 0 :(得分:1)
在代码中,每次调用func()时都会取消定义smth,因为它不是全局变量。 要解决这个问题,只需将smth设为全局。
<script type="text/javascript">
var smth = false;
function func(el){
if (smth == false) {
el.firstElementChild.style.display = 'none';
el.lastElementChild.style.display = 'block';
smth = true;
} else {
el.firstElementChild.style.display = 'block';
el.lastElementChild.style.display = 'none';
smth = false;
}
}
</script>
<div onClick="func(this)">
<div>1</div>
<div style="display:none;">2</div>
</div>