【问题标题】:Remove mouseout after a given number of alerts in javascript在javascript中给定数量的警报后删除mouseout
【发布时间】:2013-06-24 15:22:43
【问题描述】:

我是一名试图为新项目学习编程的艺术家/

我正在尝试创建一个程序,其中仅在调用函数的前 3 次触发鼠标移出警报。这是我的代码。目前触发了3次:

<!DOCTYPE html>
<html>
<head>
</head>

<body>

    <div id="message">
   <input type="button" value="CLICK HERE" id="countButton" />

    <p style="color: white">The button was pressed <span id="displayCount">0</span> times.</p>
    </div>
    <script type="text/javascript">
      var count = 0;
      var button = document.getElementById("countButton");
      var display = document.getElementById("displayCount");



      button.onclick = function(){
        count++;
        display.innerHTML = count;

        if (count <=3){
          button.onmouseout = function () {
            alert("        Come on... BACK TO WORK!");
          }
        }

        else if(count>3){
        document.body.innerHTML=""
        alert("FINALLY!!!");
}
      }
    </script>
</body>
</html>

这是该程序的较短版本。您可以在下面的链接中看到最终结果(减去 mouseout 问题):http://www.esmeraldakosmatopoulos.com/blank#!/c1fam 警告:这很烦人……故意的。

请帮帮我

谢谢!

【问题讨论】:

  • 这段代码有什么问题?

标签: javascript html button onmouseover onmouseout


【解决方案1】:

这里的基本问题是代码的else 部分。它会在每次单击按钮时重新附加一个 mouseout 处理程序,而 count &lt;= 3

您需要将button.onmouseout = {...} 移出onclick 处理程序,然后移至elseput button.onmouseout = null;

但是,我建议您使用 addEventListener() 而不是事件属性。要删除侦听器,您可以使用removeEventListener() 这样您就可以更好地控制事件处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多