页面1具有一个ID为(#navigation)的菜单,该菜单具有一个称为Page2的链接,以及一个具有ID(global_content)的DIV的链接,单击链接Page2时将显示内容。在同一页面(第1页)中,我编写了一个jquery加载函数,因此当我单击链接时,它应显示内容而无需重新加载页面。加载事件工作正常,显示了内容,但没有第2页具有的脚本标签。
这是第1页中的代码
这是第2页中的代码
some content
但是我得到的输出是
some content
你能帮忙吗?
您可以绕过的限制jQuery.load
剥离标签使用jquery.ajax直接,这是用于底层方法速记方法
load
,get
,post
等。我们将使用jquery.html,使用innerHTML
,更新DOM。
var toLoad = this.href, toLoadSelector = '#global_content'; ... function loadContent() { jQuery.ajax({ url: toLoad, success: function(data,status,jqXHR) { data = jQuery(data).find( toLoadSelector ); jQuery('#global_content').html(data).fadeIn('fast', hideLoader()); } }); }
如您所见,我们在响应中应用选择器toLoadSelector
('#global_content'
)仅插入页面的所需部分。
更新
更好的方法是向loadContent
函数引入一些参数,以便更易于重用。这是更新(和经过测试)的版本:
有关更改的一些注意事项:
jQuery(function() { ... })
是相同的
jQuery(document).ready( function() { ... } )
在函数中指定function($)
makes jQuery
as available $
,可以节省一些键入。
现在,关于此表达式:
$(data).find(selector).addBack(selector).children()
不幸的是, 在 这在技术上是非法的,因为$("
#global_content
div直接在下方,则它将不起作用。添加
addBack(selector)
使得可以匹配顶级元素本身。有关更多详细信息,请参见此问题。
.children()
可以确保id
在文档中必须具有唯一性。
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有