Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在第一次单击时切换div显示?_Javascript_Jquery_Css_Html - Fatal编程技术网

Javascript 如何在第一次单击时切换div显示?

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();

html标题:

<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);
     });