【问题标题】:Loading external html and then execute script加载外部 html 然后执行脚本
【发布时间】:2013-01-18 19:43:58
【问题描述】:

首先,如果标题含糊不清,请原谅我,似乎想不到要问的正确问题。

无论如何,我正在尝试使用 ajax 加载函数使用 JQuery 加载外部 html,如下所示:

$("a").click(function(){
    $(".contentWrapper").load(pageURL+" .externalContent","ajax=true",function(){
    //some more code here
    });
});

它的作用(根据我的理解)是在从返回的 html 数据中解析它后,从 pageURL 指向的页面加载具有类 .externalContent 的元素的内容。

我的问题是 .externalContent 在其原始页面中有一些与之关联的脚本。加载 .externalContent 后,我​​应该怎么做才能执行这些脚本。

简单地将脚本放在调用页面中不起作用,因为当脚本在 document.ready 上调用时 div 不存在,至少从我的理解来看是这样。

我也尝试将脚本放在 ajax 成功选项中,但我似乎无法让它工作。对不起,如果我没有多大意义,我整晚都在这。我是 JQuery 的新手,希望能得到任何帮助,包括更好的方法来编写这样的代码。谢谢!

【问题讨论】:

  • api.jquery.com/jQuery.getScript 用于通过 AJAX 加载和执行 JavaScript。
  • 感谢 Blazemonger!虽然 getScript 不能解决我的问题,但事实证明它也是我需要知道的。

标签: jquery ajax


【解决方案1】:

这里可以使用ajaxComplete函数或委托函数

http://api.jquery.com/ajaxComplete/

$(".contentWrapper").ajaxComplete(function(){
 //execute even handlers here
});

jquery 委托 这对于选择器来说是通用的,即使在加载了 ajax 之后也是如此 http://api.jquery.com/delegate/

$("table").delegate("td", "click", function() {
  $(this).toggleClass("chosen");
});

【讨论】:

    猜你喜欢
    • 2019-10-31
    • 2011-07-11
    • 2023-04-09
    • 1970-01-01
    • 2018-02-17
    • 2014-09-25
    • 2011-09-02
    • 2018-07-19
    • 1970-01-01
    相关资源
    最近更新 更多