JQuery按钮仅生效一次求助:随机名言生成器需重复触发
解决随机名言生成器按钮只能生效一次的问题
问题出在随机名言的生成时机上:你现在只在页面加载时计算了一次randomQuote的值,之后每次点击按钮都是把这个固定值塞给文本框,自然只会生效一次。
把随机生成的逻辑移到按钮的点击事件里,每次点击都重新生成随机名言就行,修改后的JS代码如下:
//quote variables const quoteOne = '1'; const quoteTwo = '2'; const quoteThree = '3'; const quoteFour = '4'; const quoteFive = '5'; const quoteSix = '6'; //quotes Array const quotes = [quoteOne, quoteTwo, quoteThree, quoteFour, quoteFive, quoteSix]; $(document).ready(() => { //jquery variables const $newQuote = $('#new-quote'); const $text = $('#text'); //handlers $newQuote.on('click', () => { // 每次点击都重新生成随机名言 let randomQuote = quotes[Math.floor(Math.random() * quotes.length)]; $text.text(randomQuote); }) })
另外,你也可以简化代码,没必要单独给每个名言声明变量,直接把字符串放进数组更简洁:
const quotes = ['1', '2', '3', '4', '5', '6']; $(document).ready(() => { const $newQuote = $('#new-quote'); const $text = $('#text'); $newQuote.on('click', () => { const randomQuote = quotes[Math.floor(Math.random() * quotes.length)]; $text.text(randomQuote); }) })
HTML部分不需要改动,保持原有代码即可。
内容的提问来源于stack exchange,提问作者Aarroonn
相关产品推荐
相关产品推荐

