.load()脚本不会在之前加载的div中运行

时间:2014-03-12 22:16:07

标签: javascript jquery

为令人困惑的措辞提前道歉!

我正在使用.load()来处理我的很多内容。在几种情况下在负载内加载。这一切都很好,我正在努力解决的问题是嵌套内容与父母一起加载。

这是我需要完成的基本功能:

$('.content').ready(function() {        
  $('.r_content').load('r_time.html .r_content');
});

如何让脚本能够处理以前加载的内容?我之前必须更改语法才能为加载的内容运行脚本,但我似乎无法使这个脚本运行

希望这不会让人感到困惑。谢谢!

基本的html结构:

<body>
    title

    <div class="content">
    blah blah blah - content to be loaded

        <div class="r_content">
        ... r_content also to be loaded, should be from 'r_time.html' by default
        </div>

    </div>
</body>

1 个答案:

答案 0 :(得分:1)

这确实令人困惑的措辞和代码。如果您正在尝试1)加载()内容,并且一旦加载2)加载更多内容,您就需要使用回调或承诺。这是回调的一种方式,可以模仿你$(document).on('event')代码。

$(document).ready(function() {      
    $('.r_content').load('r_time.html .r_content', function(){
         $(document).trigger('loadmorestuff'); // things are loaded, tell the document
    });

    // listen for the event 'loadmorestuff' and then run this function.
    $(document).on('loadmorestuff', function (){ 
      $('.the-previously-loaded-container-you-want-to-target').load('r_time.html .r_content');
    });
});

修改 看起来你已经编辑了一下这个问题。您遇到的问题是ready事件仅触发事件。触发时,您第一次load调用的内容尚未存在,因此正在运行的js无需运行它。在上面发布的示例中,“准备好了”&#39;事件由名为loadmorestuff的自定义事件替换。您可以随意命名。关键是document正在使用$(document).on('loadmorestuff'监听该事件,并且只有在load()完成后才会触发该事件。

load() callbacktrigger() method上查看有关详情的jquery文档。