有這個代碼:
function roleDescription() {
// вторая ступень = описание роли при наведении, выбор роли при клике
for (let i = 0; i < originDescription.length; i ) {
buttons[i].addEventListener('mouseover', asignDesc);
buttons[i].addEventListener('click', asignRole, {
once: true
});
}
}
這個功能:
function asignRole(i) {
playerrole = role[i];
alert(playerrole);
makeSpecial();
}
function asignDesc(i) {
maintext.textContent = originDescription[i];
maintext.style.fontSize = '15px';
}
我怎樣才能從回圈 [for] 中傳遞 [i],這樣我才能讓所有這些 scipt 順利進行?
uj5u.com熱心網友回復:
您可以使用系結
const buttons = document.querySelectorAll("button");
const originDescription = buttons;
for (let i = 0; i < originDescription.length; i ) {
buttons[i].addEventListener('click', asignRole.bind(buttons[i], i), {
once: true
});
}
function asignRole(i) {
console.log(i);
}
<button type="button">0</button>
<button type="button">1</button>
<button type="button">2</button>
你可以使用一個函式
const buttons = document.querySelectorAll("button");
const originDescription = buttons;
for (let i = 0; i < originDescription.length; i ) {
buttons[i].addEventListener('click', () => asignRole(i), {
once: true
});
}
function asignRole(i) {
console.log(i);
}
<button type="button">0</button>
<button type="button">1</button>
<button type="button">2</button>
您可以使用資料屬性
const buttons = document.querySelectorAll("button");
const originDescription = buttons;
for (let i = 0; i < originDescription.length; i ) {
buttons[i].addEventListener('click', asignRole, {
once: true
});
}
function asignRole(evt) {
console.log(evt.currentTarget.dataset.id);
}
<button type="button" data-id="0">0</button>
<button type="button" data-id="1">1</button>
<button type="button" data-id="2">2</button>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/490782.html
標籤:javascript html
