Вы можете получить идентификатор нажатой кнопки, передав его в функции javascript. Попробуйте приведенный ниже фрагмент кода.
HTML:
<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>
Javascript:
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';
}
}
Другой способ сделать это - вместо этого передать сам элемент своего идентификатора. Чтобы это работало, измените toggleState(this.id);
на toggleState(this);
в обоих местах приведенного выше кода HTML.
Затем получите идентификатор сработавшего элемента, как мы это сделали в приведенном ниже коде.
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 отсутствует элемент <div>
, который, я уверен, у вас обязательно будет в вашем файле кода, но чтобы сделать этот ответ самодостаточным , Я взял на себя смелость добавить элемент <div>
в начале.
Я бы предпочел удалить элемент вместо переключения его видимости, но я вижу, что @Janned уже обратился к этому в своем ответе , поэтому я не буду go в него входить.