2015-02-12 36 views
0
 $(document).off("click", "#main").on("click", "#main", function() { 
      that = $(this); 
      $('loading').show(); 
      Delay = setInterval(function() { 
       getMenu(that.attr("menu_id")); 
      }, 1000); 


     }); 

如何臨時關閉#main的事件事件?因爲如果在加載期間沒有#main是可點擊的,並且導致我的函數執行多次。off()在jquery中臨時關閉事件

+0

你可以使用'$(「#主」)解除綁定(「點擊」);'來解除綁定事件並用定時器重新綁定它? – 2015-02-12 01:53:04

+0

@AlejandroIván'.off'代替'.unbind',就像'.on'代替'.bind'一樣。 – Barmar 2015-02-12 01:53:30

+0

@Barmar謝謝我不知道,我有一段時間沒有編碼:) – 2015-02-12 01:56:20

回答

1

您可以使用一個類,使之去像

$(document).off("click.main").on("click.main", "#main:not(.disabled)", function() { 
    var that = $(this); 
    $('loading').show(); 
    Delay = setInterval(function() { 
     getMenu(that.attr("menu_id")); 
    }, 1000); 
}); 

此處若#main有一個名爲禁用單擊處理程序將無法得到執行類。

所以,當你想關閉單擊添加類disabled,當你想啓用回刪除類

+0

爲什麼不是$('#main')。unbind('click');然後綁定完成後? – 2015-02-12 02:00:42

+0

@DeanJason當然你可以做到這一點.. – 2015-02-12 03:02:00