Javascript函数在第二次点击时执行
javascript function executing on second click
我需要折叠/展开div的宽度(而不是隐藏/显示),由于某种原因,我编写的这段代码似乎只在第二次单击时开始工作。如果它设置了一个警告来检查变量,那么似乎变量最初没有选择样式。任何想法吗?下面是一个js代码:
http://jsfiddle.net/JKxHw/4/这是我的css, html和脚本
#left_nav {width:200px; border: 1px solid red; height: 300px;}
<div id="left_nav_collapser">
<a href="#" onclick="javascript:hideNav();return false;">collapse width of left nav</a>
</div>
<div id="left_nav">
<div id="left_nav_navlinks">
<ul><li>Apples<ul><li>Macintosh</li><li>Styrofoam</li></ul>
</li><li>Oranges</li><li>Bananas</li></ul>
</div>
</div>
<script>
function hideNav(){
var myLayer = document.getElementById('left_nav').style.width;
//alert(myLayer);
if(myLayer=="200px"){
document.getElementById('left_nav').style.width="0px";
document.getElementById('left_nav_navlinks').style.display="none";
} else {
document.getElementById('left_nav').style.width="200px";
document.getElementById('left_nav_navlinks').style.display="block";
};
}
</script>
更多信息:尽管我很想这样做,但我不能使用jQuery。
.style
仅从style属性获取信息,而不是计算样式。你可以用window.getComputedStyle
来代替,但我觉得它不够灵活。相反,你应该有一个变量来跟踪元素的可见性状态。
你甚至可以在元素本身上使用.dataset
(假设你不需要支持IE),尽管任何变量都可以。
相关文章:
- Javascript Select OnChange没有'不要第二次工作
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- 单击仅在第二次单击后有效
- 第二次单击时执行不同的代码(JavaScript)
- 如何在ajax完成后执行第二次循环迭代
- 如何在第二次点击时执行操作
- Javascript 在第一次完成之前执行第二行代码
- 函数在点击后第二次未执行
- 如果脚本在第一次尝试时失败,请第二次执行脚本
- 当第二次按下按钮时,该功能不会执行
- 防止第二次执行,直到第一次执行在jquery中结束
- Javascript函数第二次执行
- Javascript函数只在第二次悬停后执行
- Javascript函数在第二次点击时执行
- Jquery .load执行第一次加载,而不是第二次加载
- 使用Snap.svg在第二次点击时执行某些操作
- 我可以在第二次触发事件时执行一组不同的代码吗
- JavaScript RegExp测试方法工作不稳定,我的意思是第一次执行和第二次执行的结果不同
- 隐藏第一个窗体,然后显示第二个窗体.Secnd表单执行多次提交
- 函数中的 Jcrop 未第二次执行