2016-09-14 137 views
1

我有這個按鈕:爲什麼文件JS調用兩次

<button type="button" id="topic_schedulati" class="btn btn-info">Mostra Topics Schedulati</button> 

這是我的jQuery代碼來處理點擊:

(function() { 
    $(window).on('action:ajaxify.end', function(event, data) { 

     if (new RegExp(/^category\/[0-9]+/).test(data.url)) { 
      $(document).ready(function(){ 
      $('body').on('click', '#topic_schedulati', function() { 
       console.log("hi"); 
      }); 
     }); 
     } 

    }); 
}()); 

爲什麼當我按一下按鈕我顯示打印「嗨」兩次而不是一次?任何人都可以幫助我?

+1

每當代碼運行,你綁定點擊....事件中的綁定事件是一個壞主意 – epascarello

回答

1

很可能這個動作「action:ajaxify.end」被多次調用。當你將事件附加到身體時,不需要其他條件,因爲事件將響應任何與ID「topic_schedulati」相匹配的添加元素,請記住,您應該只有1個元素具有該ID或您取決於瀏覽器會有不穩定的行爲。

$(function() { 
    $('body').on('click', '#topic_schedulati', function() { 
      console.log("hi"); 
    }); 
}); 
+0

是的,它的作品...謝謝 –