重复onClick事件

时间:2017-05-12 20:45:18

标签: javascript arrays random

我希望用户在每次点击按钮时更改标题的字体样式。现在它只能工作一次。有人可以请帮助。我是否使用while循环?如果别的?对不起,这里需要一些帮助。 提前谢谢。

const text = document.querySelector('h1');
const randomFontButton = document.getElementById('randomFontButton');

randomFontButton.addEventListener('click', () => {

let fontType = [ "Arial", "Verdana", "Helvetica","Times New Roman", 
"Times", "serif"];

let rand = fontType[Math.floor(Math.random()*fontType.length)];

text.style.fontFamily = fontType[rand];
});

2 个答案:

答案 0 :(得分:0)

您不需要while循环或if语句。除了你错误地设置字体外,你的代码基本没问题。

更改行:

text.style.fontFamily = fontType[rand];

要:

text.style.fontFamily = rand;

您已经使用'rand'约束选择了新字体。 fontType [rand]未定义。

const text = document.querySelector('h1');
const randomFontButton = document.getElementById('randomFontButton');

randomFontButton.addEventListener('click', () => {

const fontType = [ "Arial", "Verdana", "Helvetica","Times New Roman", 
"Times", "serif"];

const rand = fontType[Math.floor(Math.random()*fontType.length)];

text.style.fontFamily = rand;
});

答案 1 :(得分:0)

请改为尝试:

const text = document.querySelector('h1');
const randomFontButton = document.getElementById('randomFontButton');

randomFontButton.addEventListener('click', () => {

    let fontType = ["Arial", "Verdana", "Helvetica", "Times New Roman",
        "Times", "serif"];

    var idx = Math.floor(Math.random() * fontType.length);
    text.style.fontFamily = fontType[idx];
});