2011-04-02 42 views
2

我有這樣的代碼AJAX頁面上的搜索點擊:jQuery的生活點擊火災不止一次

$.ajax({ 
    url: "ClientsList.asp", 
    type: "POST", 
    data: "name=" + Name + "&org=" + Org + "&job=" + Job + "&type=" + Type, 
    success: function(msg){ 
     $("#SRP").html(msg); 
     $("#Loading").fadeOut("noraml",function(){ 
      $("#SRP").fadeIn(); 
     }); 

    } 
}); 

然後加載內容我有我需要趕上覆選框,所以我做這個代碼

$(".SearchResultSelectBox").live("click", function(event) { 
    $(this).is(":checked") ? DoCheckSelect($(this).attr("rel")) : unDoCheckSelect($(this).attr("rel")); 
}); 

我第一次搜索並從ajax得到結果頁面時,複選框工作得很好。我第二次使用搜索時,每次點擊都是雙倍的。使用AJAX的第三次,每次直播點擊增至三倍等等...

我嘗試「返回false」,但隨後工作,但該複選框不會獲得任何點擊

可以做些什麼?

從來沒有想過!我有一個錯誤,我有第二組的函數的第一個內部所以每次我做了搜索功能的時間我做直播的點擊裏面的功能再次

+0

你叫'活()'不止一次?如果不是,則在'click()'例程中嘗試'event.stopPropagation();'。 – Orbling 2011-04-02 13:57:49

+0

那麼你不止一次地打電話給它。輕鬆完成。 – Orbling 2011-04-02 14:02:04

+0

如果每次加載內容時都調用'live()'函數,則會錯過「live」這一點。你應該只註冊一次實時事件,然後每當你刷新html時,它就會通過它。 – yoavmatchulsky 2011-04-02 14:03:13

回答

1

可嘗試使用

解除綁定( '點擊');

,並再次將其綁定每個Ajax請求

1

嘗試

event.stopPropagation(); 

$(".SearchResultSelectBox").live("click", function(event) { 
    $(this).is(":checked") ? DoCheckSelect($(this).attr("rel")) : unDoCheckSelect($(this).attr("rel")); 
    event.stopPropagation(); 
});