Javascript 如何在第一次单击时切换div显示?
html标题:Javascript 如何在第一次单击时切换div显示?,javascript,jquery,css,html,Javascript,Jquery,Css,Html,html标题: <script type="text/javascript" language="JavaScript"> function getStyle() { var temp = document.getElementById("cont").style.display; return temp; } function switch01() { var current = getStyle();
<script type="text/javascript" language="JavaScript">
function getStyle() {
var temp = document.getElementById("cont").style.display;
return temp;
}
function switch01() {
var current = getStyle();
if (current == "none") {
document.getElementById("cont").style.display = "block";
}
else {
document.getElementById("cont").style.display = "none";
}
}
</script>
加载页面后-首次单击不起作用。第一次单击后,一切正常。另外,我如何才能缓慢地显示/隐藏div(具有滑动效果,而不是瞬间)?如果它必须是内联的,您需要这样做
这(将“无”测试反转为“不阻塞”测试)
功能开关01(objId){
var current=document.getElementById(objId.style.display;
document.getElementById(objId.style.display=(当前!=“块”)?“块”:“无”;
返回错误
}
以上回答了你的问题
更新:既然您似乎希望使用jQuery,那么下面是您需要如何编写代码-请注意Michal遗漏的返回false
<a href="#" id="toggle">CONTENT</a>
$(function() { // wait for the page to load
$('#toggle').on("click",function(e) { // when link clicked
$('#cont').slideToggle(); // slide open or closed
return false; // or e.preventDefault(); // stop the click executing the href
});
});
$(函数(){//等待页面加载
$('#toggle')。打开(“单击”,函数(e){//单击链接时
$('#cont').slideToggle();//滑动打开或关闭
返回false;//或e.preventDefault();//停止执行href的单击
});
});
您第一次获得的值为“未定义”
你可以:
1) 页面加载时通过javascript设置值
document.getElementById("cont").style.display = "none";
或
2) 将“undefined”值解码为none,因为您知道最初该值将为none
var temp = document.getElementById("cont").style.display;
if (temp == "undefined")
temp = "none";
return temp;
这两种解决方案都很难看,但都很有效。如果您想要幻灯片效果,我建议您使用jQuery:
$('#toggle').click(function() {
$('#cont').slideToggle();
});
看这个
有关更改滑动速度和更多信息,请参阅。以隐藏div。。你可以看看
$('cont').hide(); function.
更多相关信息可在此处获得:
http://api.jquery.com/hide/
http://api.jquery.com/show/
对于滑动效果,Jquery在这个部门是一流的。你只需要通过下面给出的论点。。它完成了这项工作
$("cont").click(function () {
$(this).hide("slide", { direction: "down" }, 1000);
});
仅供参考:如果您想要“效果”和移动,您应该看看jQuery.maybe document.getElementById(objId.style.display=(当前!=“块”)?“块”:“无”;这也是第一次,从零开始。。。我想是的。我的想法。我得把它藏起来看看能不能用谢谢大家。已解决。与“不同”比较:肯定是最整洁的解决方案:)应更改SO规则。我们有不止一个正确答案,但只有一个是可以接受的。
$('#toggle').click(function() {
$('#cont').slideToggle();
});
$('cont').hide(); function.
http://api.jquery.com/hide/
http://api.jquery.com/show/
$("cont").click(function () {
$(this).hide("slide", { direction: "down" }, 1000);
});