[英]Jquery .on(“click”) function is only firing once
我在這里注意到了很多類似的問題,但是他們的解決方案似乎沒有用。 我附加到按鈕元素的click事件僅觸發一次。 有任何想法嗎?
我的HTML
<p id="randomCatchphrase">Hello, my name is Inigo Montoya. You killed my father. Prepare to die.</p>
<p id="catch"><button class="catchbutton">Catchphrase me!</button></p>
我的JS
$(function() {
var catchphraseArray = [
"Good morning, Vietnam!",
"Khaaaaan!",
"Bueller...Bueller...Bueller?",
"Alrighty then!",
"I know kung fu.",
"YOU SHALL NOT PASS!",
"You can't handle the truth!"
];
function getRandomArrayElement(myArray) {
var randomNumber = Math.floor(Math.random() * myArray.length);
return myArray[randomNumber];
}
var randomPhrase = getRandomArrayElement(catchphraseArray);
$("#catch").on("click", ".catchbutton", function() {
$("#randomCatchphrase").text(randomPhrase)
});
});
您的click
事件確實觸發了多次,但沒有看到它,因為randomPhrase
的值未更改(具有第一個聲明的值) ,因此您需要在click
句柄中調用函數以在randomPhrase
按下按鈕時更新這些值,如下所示:
$("#catch").on("click", ".catchbutton", function() {
// here the value will updated anytime when button was clicked
var randomPhrase = getRandomArrayElement(catchphraseArray);
$("#randomCatchphrase").text(randomPhrase);
});
randomPhrase
不是調用getRandomArrayElement
,而是返回對保存為變量randomPhrase
getRandomArrayElement
單個調用
$("#catch").on("click", ".catchbutton", function(){
$("#randomCatchphrase").text(getRandomArrayElement(catchphraseArray);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.