鍍金池/ 問答/HTML5  HTML/ event 設定好了,換了 attr id 重新呼叫 event,卻無法運行?

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

$(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
但結(jié)果他還是在運行 add_favorite_btn 的活動,而不是 remove_favorite_btn
怎麼會這樣?

回答
編輯回答
生性

先不說卡死的原因,首先你這個dom時間綁定的想法有問題,頁面加載完$('#remove_favorite_btn'), $('#add_favorite_btn')這兩個click的綁定只能成功一個,你的第二個在現(xiàn)在dom里是沒有的,然后你再第一個事件里改了這個元素id,但是這個不會改變這個dom節(jié)點綁定的click事件,這個事件不是映射關(guān)系。

卡死的原因我覺得應該是每個事件都綁了ajax異步,你點擊過多導致的。

2018年1月22日 16:29