首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按钮id的改变导致点击事件的触发

问按钮id的改变导致点击事件的触发
EN

Stack Overflow用户
提问于 2022-01-03 06:56:54
回答 2查看 70关注 0票数 0

我尝试使用jquery创建一个click事件。

我想要的结果如下:

第一次点击加一次

第二次点击加一次

第三次点击加一&更改按钮的id和文本

第四次单击“向前”-+1&警报弹出。

但是,警报在第三次单击时弹出.

我的html:

代码语言:javascript
复制
<h1 id="number">0</h1>
<button id="next">Add 1</button>

我的jquery:

代码语言:javascript
复制
$(document).ready(function () {
      let num = 0;

      $("#next").click(function () {
        ++num;
        if (num > 2) {
          $("#next").html("Alert");
          $("#next").attr('id', 'alert');
          $("#number").html(num);
        } else {
          $("#number").html(num);
        }

      });
      $(document).on("click", "#alert", function () {
        alert(num);
      });
    });

我不知道我哪里出了问题,理论上这对我来说很好,但我对jquery还不熟悉,我肯定漏掉了什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-03 07:22:14

在第三次点击

element.

  • unbind #alert

  • call e.stopPropagation(),以防止#next单击事件与#alert e.stopPropagation()相对应,使用$("#next").unbind("click");单击#next事件,否则在单击$("#next").unbind("click");时将触发$("#next").click

此外,不要忘记处理"#alert"单击事件中的警报和增量逻辑。

工作部件

​

代码语言:javascript
复制
$(document).ready(function () {
  let num = 0;
  $("#next").click(function (e) {
    ++num;
    if (num > 2) {
      $("#next").unbind("click");
      $("#next").html("Alert");
      $("#next").attr('id', 'alert');
      $("#number").html(num);
      e.stopPropagation();   
    } else {
      $("#number").html(num);
    }
  });
  $(document).on("click", "#alert", function () {
    ++num;
    alert(num);
    $("#number").html(num);
  });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<h1 id="number">0</h1>
<button id="next">Add 1</button>

​

票数 0
EN

Stack Overflow用户

发布于 2022-01-03 07:19:53

您可以尝试使用以下代码:

代码语言:javascript
复制
$(document).ready(function () {
      let num = 0;
       $(document).on("click", "#next", function () {
        num++;
        if (num > 2) {
          $("#next").html("Alert");
          $("#next").attr('id', 'alert');
          $("#number").html(num);
        } 
        else {
          $("#number").html(num);
        }

      });
      
 $(document).on("click", "#alert", function () {
        num++;
        $("#number").html(num);
         alert(num);
        });
    });

希望它能成功。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70562509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档