在我的專案中,我想檢查按鈕是否按正確的順序按下。正確的序列存盤在一個陣列中。為此,我使用 for 回圈添加了一個事件偵聽器,并為事件偵聽器創建了一個單獨的函式。但是在運行回圈時不會執行該功能,只會在不單擊按鈕的情況下發出警報。這是代碼:
var points = [1,2,3,4,5];
for(var j=0;j<points.length;j )
{
checkButton(j);
}
function checkButton(j)
{
$("button").on("click", function(){
if($(this).text()== points[j] )
{
alert("compleated step " (j 1));
}
else
{
alert("incorrect step " (j 1));
}
});
}
謝謝你的時間 !!
uj5u.com熱心網友回復:
由于您的 for 回圈,您多次注冊相同的事件處理程式。您需要做的就是注冊一次點擊處理程式并調整檢查按鈕是否按正確順序按下的邏輯。
您應該考慮使用 value 屬性為每個按鈕分配一個值,因為這允許您將值與文本分離。
HTML
<div>
<p>Click buttons in correct sequence!</p>
<button value="1">#1</button>
<button value="2">#2</button>
<button value="3">#3</button>
<button value="4">#4</button>
<button value="5">#5</button>
</div>
JS
var order = [2,4,1,3,5]
var nextOrderIndex = 0;
// register handler once
$("button").on("click", function() {
// parse text of button to int for correct comparison
var buttonValue = parseInt($(this).attr("value"))
if (buttonValue == order[nextOrderIndex]) {
// count up for next check
// use modulo to start back at 0 when counter reaches order.length
nextOrderIndex = (nextOrderIndex 1) % order.length;
alert("Correct");
} else {
alert("Incorrect");
}
});
見作業小提琴
編輯:調整為隨機順序
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/318140.html
標籤:javascript 查询 dom
上一篇:如何在JavaScript中等待元素加載到DOM中?
下一篇:將陣列中的每個元素顯示到DOM
