javascript - Jquery .on ("click") 函数仅触发一次

标签 javascript jquery html

我注意到这里有很多类似的问题,但他们的解决方案似乎不起作用。我附加到按钮元素的单击事件仅触发一次。有什么想法吗?

我的 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 处理程序内的函数来更新这些值,如下所示:

$("#catch").on("click", ".catchbutton", function() {
  // here the value will updated anytime when button was clicked
  var randomPhrase = getRandomArrayElement(catchphraseArray);
  $("#randomCatchphrase").text(randomPhrase);
});

关于javascript - Jquery .on ("click") 函数仅触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32879237/

相关文章:

javascript - 我可以使用 'UIKeyboardTypeTwitter' 作为 HTML 输入类型吗?

javascript - 模态对话框不适用于 bootstrap 4

jquery - 发布到 iframe 后,使后退按钮 (bfcache) 的浏览器缓存失效

javascript - 防止元素出现在行首或行尾

javascript - 使用 jQuery 或 JavaScript 添加平滑滚动

javascript - 使用多个 css 类将 css 转换属性应用于 DOM 对象时遇到问题

php - 从输入数组中查找数组中相关结果的最快方法

javascript - 触摸事件在 IOS 7 Iphone 中不起作用

JQuery CSS 选择器的奇怪行为,为什么?

html - GWT i18n,更改元标记并重新加载应用程序