单独显示/隐藏按钮javascript
我尝试使用两个单独的按钮,这样当第一个按钮被点击时,它下面会显示一个div,然后当另一个按钮被按下时,另一个div会弹出,替换/隐藏第一个按钮被点击时出现的第一个div Html:单独显示/隐藏按钮javascript,javascript,html,Javascript,Html,我尝试使用两个单独的按钮,这样当第一个按钮被点击时,它下面会显示一个div,然后当另一个按钮被按下时,另一个div会弹出,替换/隐藏第一个按钮被点击时出现的第一个div Html: 使用display:none从页面中完全删除元素 函数预定义(){ if(document.getElementById('predetermine').onclick){ document.getElementById('predetermineclick')。style.display='block'; do
使用
display:none
从页面中完全删除元素
函数预定义(){
if(document.getElementById('predetermine').onclick){
document.getElementById('predetermineclick')。style.display='block';
document.getElementById('auctionclick').style.display='none';
}
}
功能拍卖(){
if(document.getElementById('auction').onclick){
document.getElementById('auctionclick').style.display='block';
document.getElementById('predetermineclick')。style.display='none';
}
}
预先确定
拍卖
输入用户名:
创建链接
使用display:none
从页面中完全删除元素
函数预定义(){
if(document.getElementById('predetermine').onclick){
document.getElementById('predetermineclick')。style.display='block';
document.getElementById('auctionclick').style.display='none';
}
}
功能拍卖(){
if(document.getElementById('auction').onclick){
document.getElementById('auctionclick').style.display='block';
document.getElementById('predetermineclick')。style.display='none';
}
}
预先确定
拍卖
输入用户名:
创建链接
您可以通过在javascript函数中传递被单击按钮的id来获取该按钮的id。请尝试下面的代码片段
HTML:
另一种方法是传递元素本身,而不是它的id。
要使其工作,请更改toggleState(this.id)代码>切换到切换状态(此)
在上述HTML代码的两个位置
然后获取触发元素的id,就像我们在下面的代码中所做的那样
function toggleState(clickedButton) {
const clickedButtonId = clickedButton.id;
const predetermineStyle = document.getElementById('predetermineclick').style;
const auctionStyle = document.getElementById('auctionclick').style;
if(clickedButtonId === 'predetermine') {
predetermineStyle.visibility = 'visible';
auctionStyle.visibility = 'hidden';
} else {
auctionStyle.visibility = 'visible';
predetermineStyle.visibility = 'hidden';
}
}
另外,我注意到您的HTML代码中缺少了一个
元素,我相信您的代码文件中肯定会有这个元素,但是为了使这个答案能够自给自足,我在开头添加了一个
元素
我会选择删除元素而不是切换其可见性,但我看到@Janned在他的回答中已经提到了这一点,所以我不会深入讨论它。您可以通过在javascript函数中传递它来获得单击按钮的id。请尝试下面的代码片段
HTML:
另一种方法是传递元素本身,而不是它的id。
要使其工作,请更改toggleState(this.id)代码>切换到切换状态(此)
在上述HTML代码的两个位置
然后获取触发元素的id,就像我们在下面的代码中所做的那样
function toggleState(clickedButton) {
const clickedButtonId = clickedButton.id;
const predetermineStyle = document.getElementById('predetermineclick').style;
const auctionStyle = document.getElementById('auctionclick').style;
if(clickedButtonId === 'predetermine') {
predetermineStyle.visibility = 'visible';
auctionStyle.visibility = 'hidden';
} else {
auctionStyle.visibility = 'visible';
predetermineStyle.visibility = 'hidden';
}
}
另外,我注意到您的HTML代码中缺少了一个
元素,我相信您的代码文件中肯定会有这个元素,但是为了使这个答案能够自给自足,我在开头添加了一个
元素
我会选择删除元素而不是切换其可见性,但我看到@Janned在他的回答中已经解决了这一点,所以我不会深入讨论。可见性:隐藏只会在视觉上隐藏元素,但它仍在流中。使用display:none
将其隐藏并从流中删除。(参见)这是否回答了您的问题?只是一个建议,不要使用内联样式,因为它会使代码的可读性和维护变得一团糟,并且在css中使用速记规则,例如border radius:20px 13px代码>而不是边框右上角半径:13px;边框左下半径:13px;边框右下半径:20px;边框左上半径:20px代码>可见性:隐藏的
只是直观地隐藏元素,但它仍在流中。使用display:none
将其隐藏并从流中删除。(参见)这是否回答了您的问题?只是一个建议,不要使用内联样式,因为它会使代码的可读性和维护变得一团糟,并且在css中使用速记规则,例如border radius:20px 13px代码>而不是边框右上角半径:13px;边框左下半径:13px;边框右下半径:20px;边框左上半径:20px代码>非常感谢您解决了这个问题!很抱歉反应太晚,但我感谢您的解决方案!非常感谢您解决了这个问题!很抱歉反应太晚,但我感谢您的解决方案!
<div>
<!-- Pre-Determined Button -->
<span class="tooltip">
<button
style="border-top-right-radius: 13px; border-bottom-left-radius: 13px;border-bottom-right-radius: 20px;border-top-left-radius: 20px;" id="predetermine" onclick="toggleState(this.id);">Pre-Determined</button>
</span>
<!-- Auction Button -->
<span class="tooltip">
<button
style="border-top-right-radius: 20px; border-bottom-left-radius: 20px;border-bottom-right-radius: 13px;border-top-left-radius: 13px;" id="auction" onclick="toggleState(this.id); ">Auction</button>
</span>
</div>
<br>
<!-- Username Entry -->
<div class="username-entry" id="predetermineclick" style="visibility:hidden">
<label> Enter Username: </label>
<input class="joe" type="text" id="uName" name="UserName">
</div>
<!-- Create code button -->
<div class="create" id="auctionclick" style="visibility:hidden">
<button class="button">Create Link</button>
</div>
function toggleState(clickedButtonId) {
const predetermineClick = document.getElementById('predetermineclick');
const auctionClick = document.getElementById('auctionclick');
if(clickedButtonId === 'predetermine') {
predetermineClick.style.visibility='visible';
auctionClick.style.visibility='hidden';
} else {
auctionClick.style.visibility='visible';
predetermineClick.style.visibility='hidden';
}
}
function toggleState(clickedButton) {
const clickedButtonId = clickedButton.id;
const predetermineStyle = document.getElementById('predetermineclick').style;
const auctionStyle = document.getElementById('auctionclick').style;
if(clickedButtonId === 'predetermine') {
predetermineStyle.visibility = 'visible';
auctionStyle.visibility = 'hidden';
} else {
auctionStyle.visibility = 'visible';
predetermineStyle.visibility = 'hidden';
}
}