2011-10-14 90 views
0
function bindALLFunctions() { 
    ..all triggers functions related go here 
}; 


$.ajax({ 
     type: 'POST', 
     url: myURL, 
     data: { thisParamIdNo: thisIdNo }, 
     success: function(data){ 
         $(".incContainer").html(data); 
         bindALLFunctions(); 
     }, 
     dataType: 'html' 
}); 

我是新來的ajax和JQuery。 我有我的js-jquery代碼中的上述ajax調用。 bindALLFunctions();在ajax調用之後,用於重新調用所有觸發器和函數。它按預期工作都很好,很好。但是,我已經閱讀過某個地方,在初始操作完成後加載某些內容更好,因此我試圖添加/編輯以下兩個內容,但沒有取得任何成功。 任何想法?jQuery的綁定函數和觸發後阿賈克斯呼籲

1) -> $(".incContainer").html(data, function(){ 
              bindALLFunctions(); 
             }); 

2) -> $(".incContainer").html(data).bindALLFunctions(); 

回答

1

也許你應該看看到livedelegate功能。你可以在你的應用程序和所有的加載Ajax代碼的beggining設置一個獨特的事件處理程序將被自動綁定:

$("table").delegate("td", "hover", function(){ 
    $(this).toggleClass("hover"); 
}); 

但是,如果你喜歡使用Jquery.ajax叫你不得不做這樣的事情:

$.ajax({ 
     type: 'POST', 
     url: myURL, 
     data: { thisParamIdNo: thisIdNo }, 
     success: function(data){ 
         $(".incContainer").html(data); 
         bindALLFunctions(".incContainer"); 
     }, 
     dataType: 'html' 
}); 

和改造bindALLFunctions爲:

function bindALLFunctions(selector) { 
    ..all triggers functions related go here. Example: 
    $('#foo', selector).bind('click', function() { 
    alert('User clicked on "foo."'); 
    }); 
}; 

只會綁定 「下的」 給定的選擇事件。

0

您的初始代碼很好。新版本不起作用,因爲html()函數沒有回調函數。

0

很難從你的問題中知道你打算問什麼,但我的猜測是你想知道ready函數。它會讓你在文檔可用後調用你的bindALL函數;只是做$(document).ready(bindALLFunctions)$(document).ready(function() { bindALLFunctions(); })