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 调用。绑定ALLFunctions(); 用于在ajax调用后重新调用所有的触发器和函数。它按预期工作得很好。但是,我在某个地方读到了在初始操作完成后更好地加载某些内容的内容,因此我尝试添加/编辑以下两个内容,但没有成功。有任何想法吗?

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

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

3 回答 3

1

也许你应该看看livedelegate函数。您可以在应用程序开始时设置一个唯一的事件处理程序,所有加载的 ajax 代码都将自动绑定:

$("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."');
  });
};

这只会绑定给定选择器“下”的事件。

于 2011-10-14T08:12:39.870 回答
0

很难从你的问题中看出你打算问什么,但我猜你想知道ready函数。它可以让您在文档可用后调用您的 bindALLFunctions;只是做$(document).ready(bindALLFunctions)$(document).ready(function() { bindALLFunctions(); })

于 2011-10-14T08:17:29.233 回答
0

您的初始代码很好。新版本不起作用,因为html()函数没有回调函数。

于 2011-10-14T08:12:56.367 回答