javascript用输入值更新一个setInterval

标签 javascript

嘿,我只是想知道是否有人可以帮助我解决我的脚本无法正常工作的问题时间值在输入中发生变化,我真的不明白为什么会这样,有什么想法吗?

var nametags = null;
var nametag = document.getElementById('names');
var speed = document.querySelector('input[id="speeds"]');

var partyTags = function() {
  clearInterval(nametags);
  if (nametags !== null) {
    nametags = null;
  } else {
    var delay = speed.value;
    nametags = setInterval(function() {
      document.getElementsByClassName('hud-party-tag')[0].value = '&#' +
        Math.random().toString(9).substring(9, 5) + ' ' + [nametag.value] + ' ' + '&#' +
        Math.random().toString(9).substring(9, 5);
    }, delay);
  }
}

speed.addEventListener("input", partyTags);

partyTags();
<input type="number" id="speeds" value="1000">
<input type="text" maxlength="35" id="names" value="NAME HERE">
<br>
<br>
<input type="text" class="hud-party-tag" disabled>

最佳答案

问题出在检查 nametagNULL 值时,特别是当检测到输入事件时,第一次调用 partyTags() 进入IF 条件并将nametag 设置为NULL,此后该方法完成且间隔不更新。对 partyTags() 的下一次调用进入 ELSE 部分并更新间隔,依此类推...因此,请尝试下一段代码,看看它现在是否有效:

var nametags = null;
var nametag = document.getElementById('names');
var speed = document.querySelector('input[id="speeds"]');

var partyTags = function()
{
    clearInterval(nametags);
    var delay = speed.value;

    nametags = setInterval(
        function()
        {
            document.getElementsByClassName('hud-party-tag')[0].value = '&#' +
            Math.random().toString(9).substring(9, 5) + ' ' + [nametag.value] + ' ' + '&#' +
            Math.random().toString(9).substring(9, 5);
        },
        delay
    );
}

speed.addEventListener("input", partyTags);

partyTags();
<input type="number" id="speeds" value="1000">
<input type="text" maxlength="35" id="names" value="NAME HERE">
<br>
<br>
<input type="text" class="hud-party-tag" disabled>

关于javascript用输入值更新一个setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52638894/

相关文章:

javascript - 在 Jquery 中隐藏和更改 div 元素

javascript - 在单击表单按钮后应用时,HTML 样式更改不会保留

javascript - 在循环中为该选择器的所有实例选择(在任何选择器中)特定选项后,暂时禁用该选项

javascript - HTML : Can anchor be clicked when it was disabled?

javascript - JQuery .not(find()) 或 - 可以使用吗?

javascript - 使用JQuery根据scrollHeight调整元素

javascript - 验证 NoCaptcha ReCaptcha

javascript - 使用模块模式的非立即执行变体的类似类的代码结构

javascript - 功能还原的理解

javascript - 使用 Jquery 在图像及其链接之间交替