jQuery getScript()+ load()加载的内容不起作用

时间:2011-04-13 19:58:50

标签: jquery load slideshow getscript

我有一个说五个按钮的文件。 在这一排按钮下面,我生成一个占位符div。 当我点击一个按钮时,我使用load()从另一个页面加载一个div占位符(每个按钮将一大块HTML加载到占位符div)。

好吧,我的问题是我加载到占位符的块是幻灯片(anythingslider)。 即使我在主页面上有另一张幻灯片,并且已经加载了所有相关的CSS和JS,它们也无法工作。

据我所知,我需要使用getScript(),但我似乎仍然没有抓住它。我是否需要重新加载相关脚本?

提前感谢您的帮助 - K

4 个答案:

答案 0 :(得分:1)

听起来你只需要从回调函数初始化滑块(在加载内容后调用)。代码看起来像这样:

$('div#placeholder1').load('content.html', function() {
  // target the loaded div, find the slider and initialize it
  $('div#placeholder1').find('ul.slider').anythingSlider({ /* options */ });
});

答案 1 :(得分:0)

听起来您正在将html加载到您的页面中,但是在您执行之后不会实例化滑块。从另一个页面加载html,不会带来在另一个页面上运行的JS对象。

答案 2 :(得分:0)

对于我在加载内容中使用的所有脚本,我通过.load()遇到了加载内容的相同问题。

尝试将script.js放在顶部,底部甚至是加载时 内容尚无解决方案。

我如何解决这个问题?

编辑:

刚刚找到答案:

$(document).ajaxComplete(function(){
    // fire when any Ajax requests complete
})

LINK:Running JQuery scripts on AJAX loaded content

答案 3 :(得分:0)

这对于我将“依赖jquery的内容”加载到网页文档中起了作用。我个人喜欢将功能保留在功能中,因为当您有其他脚本时,它更容易维护。我创建了一个名为globalSections的函数,只要我保留以下模式,就可以在任何页面上使用它。在函数中,我创建了一个带有名为“header”的ID的div元素。然后我将我的外部“依赖jquery的内容”加载到新创建的div中。 最后,获取运行该内容所需的脚本。

$.globalSections = function() {
  $('#wrapper').prepend('<div id="header"></div>');
  $('#header').load('/myfile.html', function() {
  $.getScript("js/jquery.scripts.js");
  });
}

然后运行函数

$(function() {
  $.globalSections();
});

短而简单