Rails初始化函数的最佳方式是在ajax和文档准备好之后用Javascript



问题是,我调用了一些函数来初始化页面上的一些元素。但是在ajax成功之后,我不得不在多个地方一次又一次地重新调用这些函数。我想知道除了使用以下组合

 $(document).ready(function(){
   function A
 }); 
 $(document).ajaxComplete(function(){
   function A
 });

我读到我可以用setTimeout做一些事情,并为线程计时,以延迟来自链接的函数调用http://googlecode.blogspot.com/2009/07/gmail-for-mobile-html5-series-using.html但我很难消化。如果有人能帮我分解的话。

更新:

我的意思是,当我在多个ajax中成功更新html时,我必须调用函数A来重新初始化,上面的代码是我的想法,但我认为应该有更好的方法

示例

$(document).on('click', 'a', function() {
  $.ajax({
    type: 'GET',
    url: 'some url',
    data: data, 
    success: function(data) {
      $('#some-sector').html(data);
      function A;   <------- to init
    }
  });
});
$(document).on('click', 'b', function() {
  $.ajax({
    type: 'GET',
    url: 'another url',
    data: data, 
    success: function(data) {
      $('#some-sector').html(data);
      function A;   <------- to init
    }
  });
});

另一个更新:

因此,基本上页面上有一些元素需要通过调用函数A来动态更新。从这个例子中,我有多个ajax来更新页面。我想知道是否有更好的方法可以做到这一点,而不是多次调用ajax成功的函数A。我唯一能想到的就是顶级代码。

据我所知,您正在调用DOM上的一些函数组用作

$(document).ready(function(){
function_01();
function_02();
function_03();
});

并希望在ajax请求上调用相同的函数

$(document).ajaxComplete(function(){
function_01();
function_02();
function_03();
});

您可以定义一个通用函数,在内部调用所有需要的函数

function callAll()
{
function_01();
function_02();
function_03();
}

然后作为以下调用

$(document).ready(callAll);
$(document).ajaxComplete(callAll);

您希望以什么逻辑一次又一次地调用这个callAll方法。。

更新

尝试调用下面的函数

 $(document).ready(function () {
        function callall()
        {
            alert("call all");
        }
        $(document).ajaxComplete(callall);
  });

这将在ajax请求被处理后调用initialize函数

希望有帮助。。。。。。。。。。。

最新更新