event 設定好了,換了 attr id 重新呼叫 event,卻無法運行?

发布于 2022-09-07 15:47:38 字数 740 浏览 17 评论 0

$(function() {

  $('#remove_favorite_btn').click(function (e){

    e.preventDefault();

    $.ajax({
      type: "GET",
      url: ,
      success: function(data){

        $('#remove_favorite_btn').attr('id', 'add_favorite_btn');

      }
    });

  });

  $('#add_favorite_btn').click(function (e){

    e.preventDefault();

    $.ajax({
      type: "GET",
      url: ,
      success: function(data){

        $('#add_favorite_btn').attr('id', 'remove_favorite_btn');
      }
    });

  });

});

都在同一個頁面
當 add_favorite_btn click 後,成功則將 add_favorite_btn 的 id 屬性改為 remove_favorite_btn
此時我在按下去,照我的想法是可以直接啟動 remove_favorite_btn event
但結果他還是在運行 add_favorite_btn 的活動,而不是 remove_favorite_btn
怎麼會這樣?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

微凉徒眸意 2022-09-14 15:47:38

先不说卡死的原因,首先你这个dom时间绑定的想法有问题,页面加载完$('#remove_favorite_btn'), $('#add_favorite_btn')这两个click的绑定只能成功一个,你的第二个在现在dom里是没有的,然后你再第一个事件里改了这个元素id,但是这个不会改变这个dom节点绑定的click事件,这个事件不是映射关系。

卡死的原因我觉得应该是每个事件都绑了ajax异步,你点击过多导致的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文