使用jQuery的load方法设计动态加载及解决被加载页面js失效问题

前端之家收集整理的这篇文章主要介绍了使用jQuery的load方法设计动态加载及解决被加载页面js失效问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、问题分析

对于后台系统,相比大家都有所印象,知道其中的布局结构,如图:

在这种布局中我们需要将header,sidebar,footer分开,而且对于中间部分的content内容需要动态变化,即根据不同菜单定位到不同页面,而整体布局不会变化

这种布局结构对于单纯的HTML不具备这种嵌入各部分内容的能力,所以就需要我们自己来寻找或者解决这种问题,由于jquery的兼容性和使用广度比较不错,这里

使用jquery的load方法来处理这种页面布局框架。

二、load方法详解

1.定义

  $(selector).load(URL,data,callback);

  必需的 URL 参数规定您希望加载的 URL。

  可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。

  可选的 callback 参数是 load() 方法完成后所执行的函数名称

 2.示例

也可以把 jQuery 选择器添加到 URL 参数。

   下面的例子把 "demo_test.txt" 文件中 id="p1" 的元素的内容,加载到指定的

元素中:

$("#div1").load("demo_test.txt #p1");

可选的 callback 参数规定当 load() 方法完成后所要允许的回调函数。回调函数可以设置不同的

内容加载成功!"); if(statusTxt=="error") alert("Error: "+xhr.status+": "+xhr.statusText); });

三、布局框架load的使用

1.问题

  网上很多人在使用load方法加载动态页面的时候遇到一个普遍的问题,就是在被加载页面中的JavaScript代码失效,这是因为load加载的外部文件会把Script部分删除掉,所以被加载页面调用页面的JavaScript的时候就会出现xxxfunction未定义。

2.解决

对于header,sidebar,footer这种只包含静态HTML代码的部分直接使用load加载

对应中间content变化的内容,一般都会包含对应的JavaScript代码,使用自定义的load方法(如下代码),在使用jquery.load()方法加载对应的内容的同时,使用load的回调方法处理JavaScript的加载,将被加载页面的JavaScript代码加载到布局页面

中这样每次load()的时候content的内容都会被覆盖,所以也不必担心重复加载的问题。这样就完美解决被加载页面js失效的问题。具体代码如下所示:

四、代码示例

布局页面

<Meta charset="utf-8"> <Meta http-equiv="X-UA-Compatible" content="IE=edge"> <Meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">

效果截图:

以上所述是小编给大家介绍的使用jQuery的load方法设计动态加载及解决被加载页面js失效问题。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

猜你在找的jQuery相关文章