gpt4 book ai didi

javascript - 在纯javascript中切换显示

转载 作者:行者123 更新时间:2023-11-30 10:02:24 26 4
gpt4 key购买 nike

如果单击登录和注册按钮,我会尝试切换注册和登录框的可见性。我正在尝试仅使用纯 javascript。

我写了如下简单的 html 和 javascript:

<div>
<button class="signin">sign in</button><button class="signup">sign up</button>

<div class="signin-box" style="display: none;">
<form class="signin-form">
<label>username<input></label><label>password<input></label><button type="submit">signin</button>
</form>
</div>

<div class="signup-box" style="display: none;">
<form class="signup-form">
<label>username<input></label><label>password<input></label><button type="submit">signup</button>
</form>
</div>
</div>

javascript部分:

var signupButton = document.getElementsByClassName('signup')[0];
var signinButton = document.getElementsByClassName('signin')[0];
var signupBox = document.getElementsByClassName('signup-box')[0];
var signipBox = document.getElementsByClassName('signin-box')[0];

console.log("box: ", signupBox, "button: ",signupButton);

var toggleVisible = function(item){
if (item.style.display === 'none'){
return item.style.display = 'block';
}else{
return item.style.display = 'none';
}
};

window.onload = function(){
signupButton.onclick = toggleVisible(signupBox);
signinButton.onclick = toggleVisible(signipBox);
};

这里的问题是即使我从未单击过按钮,javascript toggleVisible 也会自动激活。

因此,登录框和注册框都获得了 display:block 属性。

我该如何解决这个问题?

最佳答案

您正在调用该函数,而不是将其传入。只需将您的函数调用包装在一个匿名函数中:

signupButton.onclick = function() {
toggleVisible(signupBox);
};

如果您不关心较旧的浏览器,如果将 JavaScript 放在 <body> 的底部,也可以稍微简化代码。标记并向您的 CSS 添加规则:

document.querySelector('.signup').addEventListener('click', function() {
document.querySelector('.signup-box').classList.toggle('hidden');
}, false);

document.querySelector('.signin').addEventListener('click', function() {
document.querySelector('.signin-box').classList.toggle('hidden');
}, false);

还有 CSS:

.hidden {
display: none;
}

关于javascript - 在纯javascript中切换显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30902388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com