我想通过菜单在div中加载一些外部内容片段。
发现“加载”和“直播”,发现tutorial 使用它=成功! 除了文档中明确的内容之外,它不会加载JavaScript。
问题是,目标页面已经在标题内加载了相同的JavaScript,因为Wordpress会在每个页面中加载它。在这个特定的页面中,我只是通过jQuery AJAX调用使用插件(nextgen gallery)。
所以,我认为我的问题是我需要提醒/重新加载JavaScript,对吗?
我该怎么做?
<script type="text/javascript" charset="utf-8">
jQuery(document).ready(function(){
// ajax pagination
jQuery('#naveg a').live('click', function(){ // if not using wp-page-numbers, change this to correct ID
var link = jQuery(this).attr('href');
// #main is the ID of the outer div wrapping your posts
jQuery('#fora').html('<div class="loading"><h2>Loading...</h2></div>');
// #entries is the ID of the inner div wrapping your posts
jQuery('#fora').load(link+' #dentro')
return false;
});
}); // end ready function
</script>
PS:我用“on”代替“live”但是也没用。
答案 0 :(得分:0)
我不确定我是否理解...你的load()命令在你想要执行的一些Javascript中出现了什么?我不确定你能否那样做。但是如果你只需要在load()完成时调用一些JS,就可以传递一个类似的函数:
jQuery('#fora').load(link+' #dentro', function() {
console.log("load completed");
// JS code to be executed...
});
答案 1 :(得分:0)
如果要执行加载页面中包含的Javascript代码(通过.load()检索的页面),则必须使用不带“后缀选择器表达式”的url-parameter。请参阅(.load())的jQuery文档:
注意:使用不带后缀选择器表达式的URL调用.load()时,内容会在脚本生成之前传递给.html() 除去。这将在丢弃之前执行脚本块。如果 但是,调用.load()时会将一个选择器表达式附加到 URL,在更新DOM之前删除脚本, 这就是他们永远不会被执行的原因。两种情况的例子都可以 如下所示:
这里,作为文档一部分加载到#a的任何JavaScript都将 成功执行。
$('#a').load('article.html');
但是在这种情况下,正在加载的文档中的脚本块 #b在执行之前被删除:
$('#b').load('article.html #target');
我认为这是你的问题(虽然我没有你的解决方案,抱歉)。
提案:也许您可以加载整个页面(包括脚本)并删除(或隐藏)您不需要的部分?
干杯。