通过JavaScript/jQuery切换div的可见性
我正试图这样做,当我点击一个按钮,一个覆盖“登录屏幕”显示。但我的代码根本不起作用。以下是HTML:通过JavaScript/jQuery切换div的可见性,javascript,jquery,css,Javascript,Jquery,Css,我正试图这样做,当我点击一个按钮,一个覆盖“登录屏幕”显示。但我的代码根本不起作用。以下是HTML: $(文档).ready(函数(){ var isOpen=新布尔值(false); 如果(等参==真){ document.getElementById(“登录浮点”).style.display=“block”; }否则{ document.getElementById(“登录浮动”).style.display=“无”; } $(“#登录按钮”)。单击(函数(){ 等参元!=等参元; })
$(文档).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;
}
客户端登录区
tryisOpen=!isOpen
在单击处理程序中移动if
codeif(isOpen==true){
(以及@3Dos所说的内容)。您的if语句仅在页面加载时运行,而不是在用户单击#登录按钮时运行。您应该将其放入您定义的clcik事件侦听器中。问题的状态如何?如果答案解决了问题,则应选择并接受它,以便将其标记为已解决。如果您不知道如何做,请询问我/他们。在at是为类似这样的帖子创建的。啊,没错!=不等于。出于某种原因,我甚至没有想到这一点!
$("#login-button").click(function() {
isOpen != isOpen;
checkOpen();
});