Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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/jQuery切换div的可见性_Javascript_Jquery_Css - Fatal编程技术网

通过JavaScript/jQuery切换div的可见性

通过JavaScript/jQuery切换div的可见性,javascript,jquery,css,Javascript,Jquery,Css,我正试图这样做,当我点击一个按钮,一个覆盖“登录屏幕”显示。但我的代码根本不起作用。以下是HTML: $(文档).ready(函数(){ var isOpen=新布尔值(false); 如果(等参==真){ document.getElementById(“登录浮点”).style.display=“block”; }否则{ document.getElementById(“登录浮动”).style.display=“无”; } $(“#登录按钮”)。单击(函数(){ 等参元!=等参元; })

我正试图这样做,当我点击一个按钮,一个覆盖“登录屏幕”显示。但我的代码根本不起作用。以下是HTML:

$(文档).ready(函数(){
var isOpen=新布尔值(false);
如果(等参==真){
document.getElementById(“登录浮点”).style.display=“block”;
}否则{
document.getElementById(“登录浮动”).style.display=“无”;
}
$(“#登录按钮”)。单击(函数(){
等参元!=等参元;
});
});

客户端登录区



将代码更改为

 $(document).ready(function() {
      var isOpen = false;         
      $("#login-button").click(function() {
        isOpen = !isOpen;
        if (isOpen) {
          document.getElementById("login-float").style.display = "block";
        } else {
          document.getElementById("login-float").style.display = "none";
        }
      });
    });

代码在
内执行。单击
回调,使条件应位于那里。您可以进一步清理代码,但对于您的理解,这应该是有效的:)。

请注意,因为代码中有一些错误:

您没有指定值,它只是一个条件。您可能需要执行以下操作:

isOpen = !isOpen;
还有,因为你的支票是在里面开的

$(document).ready(function() {
在页面加载后,只对其求值一次。您必须将支票放入函数中,然后在需要时调用它,例如:

function checkOpen(){
    if (isOpen == true) {
        ...
    }else{
        ...
    }
然后点击调用它

$("#login-button").click(function() {
    isOpen != isOpen;
    checkOpen();
});

这是一种在没有jQuery的情况下实现所需功能的方法

var isOpen=false;
函数toggleLogin(){
如果(等参线===真){
document.getElementById(“登录浮点”).style.display=“block”;
}否则{
document.getElementById(“登录浮动”).style.display=“无”;
}
}
document.getElementById(“登录按钮”).addEventListener(“单击”,函数)(){
等参=!等参;
toggleLogin();
});
客户端登录区




您可以更改它,并使用

$(文档).ready(函数(){
$(“#登录按钮”)。单击(函数(){
$(“#登录浮动”).toggle()
})
})

客户端登录区




创建
.hidden
类并切换,而不是更改内联样式

$(“#登录按钮”)。单击(函数(){
var loginFloat=$(“#login float”);
if(loginFloat.hasClass('hidden')){
loginFloat.removeClass('hidden');
}否则{
loginFloat.addClass('hidden');
}
})
正文{
文本对齐:居中;
边缘顶部:2米;
}
.隐藏{
显示:无;
}
#登录按钮{
背景:#3bb2c1;
文字装饰:无;
}
#登录浮动{
背景#51b7b7;
边缘:2米;
填充:1em;
}

客户端登录区





try
isOpen=!isOpen
在单击处理程序中移动
if
code
if(isOpen==true){
(以及@3Dos所说的内容)。您的if语句仅在页面加载时运行,而不是在用户单击#登录按钮时运行。您应该将其放入您定义的clcik事件侦听器中。问题的状态如何?如果答案解决了问题,则应选择并接受它,以便将其标记为已解决。如果您不知道如何做,请询问我/他们。在at是为类似这样的帖子创建的。啊,没错!=不等于。出于某种原因,我甚至没有想到这一点!
$("#login-button").click(function() {
    isOpen != isOpen;
    checkOpen();
});