如果我理解正確的話,你想知道如何重用在考慮到表中的行步「3」中的「警報」 ..
那麼你是正確的 - 「上」是你想要的功能。 (此功能棄用live function) 「on」所做的是重新評估每個事件的選擇器。
而是在
<input class="answerBtns" name="answerAName" id="answerA" type="button" value="A" onclick="btnclick(this);"/>
分配「的onclick」事件你應該寫下面
$(".answerBtns").on("click",btnclick);
這將有效地結合了「btnclick」方法上的每一個「.answerBtns」元素此頁面已經或將要有(現在和將來) - 因爲選擇器$(「。answerBtns」)將在每次點擊時重新評估。
現在剩下的就是概括「btnclick」函數來支持所有場景。這意味着它必須確定它是連續的還是在形式中並且行爲恰當。
例如(不加制止,但不是僞代碼):
<script>
function btnclick(){
if ($(this).closest("#qandatbl").length > 0) { // we are in the table because we are wrapped in a table
var myRow = $(this).closest("tr");
var ourLimit = myRow.find(".numberAnswerTxtRow").val();
if (myRow.find(".answerBtnsOn").length > ourLimit){
alert("...");...
}
}else{...} // we are not in a table.. lets do what we always did.
}
</script>
正如你所看到的,我用closest和find,因爲他們給我相同的功能,但只是相對於點擊原點。
讓我知道如果我錯過了一些東西,我會添加它。