为令人困惑的措辞提前道歉!
我正在使用.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>
答案 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()
callback和trigger()
method上查看有关详情的jquery文档。