Javascript 如何将$(document).ready()重新应用于通过AJAX加载的部分HTML?

Javascript 如何将$(document).ready()重新应用于通过AJAX加载的部分HTML?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我还是一个jQuery新手,我正在尝试将ThemeForest模板集成到我的项目中。这个ThemeForest模板(vPanel)非常棒,但是它集成了很多jQuery插件和功能,所以我有很多$(document).ready(),我很难弄清楚哪个脚本做什么。我之所以要寻找它,是因为所有这些脚本在最初加载页面时都能很好地应用于页面,但我的UI中也有一些部分稍后会通过AJAX加载。这就是我的问题开始的地方:是否有办法将所有脚本重新应用到通过AJAX加载的部分HTML?您要寻找的是。您可能必须返回并更

我还是一个jQuery新手,我正在尝试将ThemeForest模板集成到我的项目中。这个ThemeForest模板(vPanel)非常棒,但是它集成了很多jQuery插件和功能,所以我有很多$(document).ready(),我很难弄清楚哪个脚本做什么。我之所以要寻找它,是因为所有这些脚本在最初加载页面时都能很好地应用于页面,但我的UI中也有一些部分稍后会通过AJAX加载。这就是我的问题开始的地方:是否有办法将所有脚本重新应用到通过AJAX加载的部分HTML?

您要寻找的是。您可能必须返回并更改某些插件,以便

$("my_button").click(function(){ }
变成

$("my_button").live("click", function(){ }

其中“my_按钮”是稍后可以通过AJAX实现的功能。

您需要的是。您可能必须返回并更改某些插件,以便

$("my_button").click(function(){ }
变成

$("my_button").live("click", function(){ }

其中“my_按钮”可以稍后通过AJAX实现。

如果脚本所做的只是连接事件,那么您可以使用
委托
方法(替代
实时
方法)将它们连接到包含的元素

如果脚本对元素进行了其他更改,则需要使用上下文参数,以便可以将更改重新应用到页面的特定部分。例如:

function applyTemplate(context) {
  $('.someclass', context).each(function(){
    // does something with the elements
  });
}

$(function(){
  // apply to whole page:
  applyTemplate(document.body);
  // load more content, and apply to what's loaded:
  $('#somePart').load('getpart.aspx', function(){
    applyTemplate($('#somePart'));
  });
});

如果脚本所做的只是连接事件,那么可以使用
委托
方法(替代
实时
方法)将它们连接到包含的元素

如果脚本对元素进行了其他更改,则需要使用上下文参数,以便可以将更改重新应用到页面的特定部分。例如:

function applyTemplate(context) {
  $('.someclass', context).each(function(){
    // does something with the elements
  });
}

$(function(){
  // apply to whole page:
  applyTemplate(document.body);
  // load more content, and apply to what's loaded:
  $('#somePart').load('getpart.aspx', function(){
    applyTemplate($('#somePart'));
  });
});

或者更好的方法是使用delegate()。如果不修改插件,就没有解决方案了?那太疯狂了,它看起来像是一个非常常见的用例!或者更好的方法是使用delegate()。如果不修改插件,就没有解决方案了?那太疯狂了,它看起来像是一个非常常见的用例!问题是我不知道如何实现applyTemplate()函数,因为模板是由一堆加载在头中的jquery插件脚本组成的。所以我更想寻找一种简单地重新应用它们的方法,问题是我不知道如何实现applyTemplate()函数,因为模板是由一堆加载在头中的jquery插件脚本组成的。所以我更想寻找一种简单地重新应用它们的方法。