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

发布于 2024-11-01 16:46:15 字数 348 浏览 3 评论 0原文

我有一个带有五个按钮的文档。 在这行按钮下面,我生成了一个占位符 div。 当我单击按钮时,我使用 load() 从另一个页面将 div 加载到占位符中(每个按钮将一块 HTML 加载到占位符 div 中) )。

好的,我的问题是我加载到占位符中的块是幻灯片(任何滑块)。 即使我在主页上有另一个幻灯片并且所有相关的 CSS 和 JS 已经加载,它们也不起作用。

据我发现我需要使用 getScript() 但我似乎仍然没有掌握它。是否需要重新加载相关脚本?

预先感谢您的帮助 - K

I have a document with say five buttons.
Underneath this row of buttons I generate a placeholder div.
When I click on a button I use load() to load into the placeholder a div from another page (each button loads a chunk of HTML into the placeholder div).

Ok, my problem is that the chunks I am loading into the placeholder are slideshows (anythingslider).
And they don't work even if I have another slideshow on the main page with all the relevant CSS and JS already loaded.

As far as I've found out I need to use getScript() but I still don't seem to grasp it. Do I need to reload the relevant scripts again?

Thank you in advance for any help - K

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

罪#恶を代价 2024-11-08 16:46:15

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

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

It sounds like you just need to initialize the slider from the callback function (called after the content is loaded). The code would look something like this:

$('div#placeholder1').load('content.html', function() {
  // target the loaded div, find the slider and initialize it
  $('div#placeholder1').find('ul.slider').anythingSlider({ /* options */ });
});
旧伤慢歌 2024-11-08 16:46:15

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

It sounds like you are loading the html into your page, but are not instantiating the slider after you do. Loading the html from another page, will not bring over the JS objects running on another page.

心的憧憬 2024-11-08 16:46:15

这对我将“依赖于 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();
});

简短而简单

This has worked for me in getting "jquery-dependent content" loaded into a web page document. I personally like to keep things in functions because its easier to maintain when you have other scripts around it. I created a function called globalSections, which can be used on any page as long I keep the following pattern. Within the function I created a div element with an ID called "header". I then loaded my external "jquery-dependent content" into that newly created div. Finally, get the scripts that are needed to make that content run.

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

Then run the function

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

Short and simple

原来是傀儡 2024-11-08 16:46:15

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

尝试将 script.js 放在顶部、底部甚至加载的位置
内容尚未解决。

一般情况下我该如何修复它?

编辑:

刚刚找到答案:

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

链接:在 AJAX 加载的内容上运行 JQuery 脚本

I do experience the same problem with loaded content via .load() for all my scripts I use on the loaded content.

Tried to put the script.js on the top, bottom and even on ever loaded
content with no solution yet.

How can I fix it in general?

EDIT:

Just found the answer:

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

LINK: Running JQuery scripts on AJAX loaded content

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文