欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用jQuery的load方法設計動態(tài)加載及解決被加載頁面js失效問題

 更新時間:2017年03月01日 15:27:23   作者:七星6609  
這篇文章主要介紹了使用jQuery的load方法設計動態(tài)加載及解決被加載頁面js失效問題,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

一、問題分析

對于后臺系統,相比大家都有所印象,知道其中的布局結構,如圖:

在這種布局中我們需要將header,sidebar,footer分開,而且對于中間部分的content內容需要動態(tài)變化,即根據不同菜單定位到不同頁面,而整體布局不會變化

這種布局結構對于單純的HTML不具備這種嵌入各部分內容的能力,所以就需要我們自己來尋找或者解決這種問題,由于jquery的兼容性和使用廣度比較不錯,這里

使用jquery的load方法來處理這種頁面布局框架。

二、load方法詳解

1.定義

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

  必需的 URL 參數規(guī)定您希望加載的 URL。

  可選的 data 參數規(guī)定與請求一同發(fā)送的查詢字符串鍵/值對集合。

  可選的 callback 參數是 load() 方法完成后所執(zhí)行的函數名稱。

 2.示例

也可以把 jQuery 選擇器添加到 URL 參數。

    下面的例子把 "demo_test.txt" 文件中 id="p1" 的元素的內容,加載到指定的 <div> 元素中:

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

可選的 callback 參數規(guī)定當 load() 方法完成后所要允許的回調函數?;卣{函數可以設置不同的

$("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){
 if(statusTxt=="success")
  alert("外部內容加載成功!");
 if(statusTxt=="error")
  alert("Error: "+xhr.status+": "+xhr.statusText);
 });

三、布局框架load的使用

1.問題

  網上很多人在使用load方法加載動態(tài)頁面的時候遇到一個普遍的問題,就是在被加載頁面中的JavaScript代碼失效,這是因為load加載的外部文件會把Script部分刪除掉,所以被加載頁面中調用該頁面的JavaScript的時候就會出現xxxfunction未定義。

2.解決

對于header,sidebar,footer這種只包含靜態(tài)HTML代碼的部分直接使用load加載

對應中間content變化的內容,一般都會包含對應的JavaScript代碼,使用自定義的load方法(如下代碼),在使用jquery.load()方法加載對應的內容的同時,使用load的回調方法處理JavaScript的加載,將被加載頁面的JavaScript代碼加載到布局頁面的<div id="content"></div>中這樣每次load()的時候content的內容都會被覆蓋,所以也不必擔心重復加載的問題。這樣就完美解決被加載頁面js失效的問題。具體代碼如下所示:

四、代碼示例

布局頁面:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title></title>
  <!-- Tell the browser to be responsive to screen width -->
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  <!-- Bootstrap 3.3.6 -->
  <link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" rel="external nofollow" >
 </head>
 <body class="hold-transition skin-blue-light sidebar-mini" onload="onload();">
  <div class="wrapper">
   <div id="header">
   </div>
   <!-- Left side column. contains the logo and sidebar -->
   <div id="sidebar">
   </div>
   <!-- Content Wrapper. Contains page content -->
   <div id="content" class="content-wrapper clearfix">
    <!-- Content Header (Page header) -->
   </div>
   <!-- /.content-wrapper -->
   <div id="footer">
   </div>
   <!-- Add the sidebar's background. This div must be placed
  immediately after the control sidebar -->
   <div class="control-sidebar-bg"></div>
  </div>
  <!-- ./wrapper -->
  <!-- jQuery 2.2.3 -->
  <script src="../resources/plugins/jQuery/jquery-2.2.3.min.js"></script>
  <!-- Bootstrap 3.3.6 -->
  <script src="../resources/bootstrap/js/bootstrap.min.js"></script>
  <!--左側菜單-->
  <script src="../resources/dist/js/common/global.js"></script>
  <script src="../resources/dist/js/menu/menuTemplate.js"></script>
  <script src="../resources/dist/js/menu/menu.js"></script>
 </body>
<script>
 //加載頁面布局的header,sidebar,footer的內容
 $("#header").load("inc/header.html");
 $("#sidebar").load("inc/sidebar.html");
 $("#footer").load("inc/footer.html");
 /*
 *加載變換內容,主要url參數為dom對象,并且該dom中的url放在href中,
 *調用方式如:<span onclick="javascript:load(this);" href="/backstage/website/test.html" rel="external nofollow" rel="external nofollow" >測試</span>
 *注意:1.該dom對象最好不要用a標簽,因為點擊a標簽會進入href指定的頁面
 *  2.要加載的內容要用 id="content" 標注,因為load中指明了加載頁面中指定的id為content下的內容
 * 3.對應頁面的JavaScript寫在content下
 */
 function load(url, data){
  //alert($(url).attr("href"));
  $.ajaxSetup({cache: false });
  $("#content").load($(url).attr("href")+ " #content ", data, function(result){
   //alert(result);
   //將被加載頁的JavaScript加載到本頁執(zhí)行
   $result = $(result); 
   $result.find("script").appendTo('#content');
  });
 }
</script>
</html>

被加載頁面:

<div id="content">
 <div>測試二</div>
 <span onclick="javascript:load(this);" href="/backstage/website/test.html" rel="external nofollow" rel="external nofollow" >測試</span>
 <a href="javascript:test();" rel="external nofollow" >測試</a>
 <script>
  function test(){
   alert("測試二頁面");
  }
 </script>
 <script>
  function test2(){
   alert("ceshi");
  }
 </script>
</div>

效果截圖:

以上所述是小編給大家介紹的使用jQuery的load方法設計動態(tài)加載及解決被加載頁面js失效問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • 純CSS打造的導航菜單(附jquery版)

    純CSS打造的導航菜單(附jquery版)

    使用CSS 制作導航菜單,實際主要是利用了css的li a屬性,對于以后用css制作更絢麗的效果提高了很好的參考。
    2010-08-08
  • jQuery 獲取頁面li數組并刪除不在數組中的key

    jQuery 獲取頁面li數組并刪除不在數組中的key

    這篇文章主要介紹了jQuery 獲取頁面li數組并刪除不在數組中的key 的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • jQuery的:parent選擇器定義和用法

    jQuery的:parent選擇器定義和用法

    jQuery的:parent選擇器匹配含有子元素或者文本的元素,空格也算是含有的元素,下面有幾個示例,大家可以學習下
    2014-07-07
  • TimergliderJS 一個基于jQuery的時間軸插件

    TimergliderJS 一個基于jQuery的時間軸插件

    Timeglider JS是一個由javascript支持縮放,數據驅動的時間軸組件。非常適合顯示項目歷史,項目計劃及其其它需要顯示歷史的項目
    2011-12-12
  • jquery實現的判斷倒計時是否結束代碼

    jquery實現的判斷倒計時是否結束代碼

    在一些購物網站經常會遇到倒計時的功能,例如某些商品在一定期限內搞活動,下面小編給大家分享一段代碼關于jquery實現的判斷倒計時是否結束代碼,希望對大家有所幫助
    2016-02-02
  • 20個非常棒的 jQuery 幻燈片插件和教程分享

    20個非常棒的 jQuery 幻燈片插件和教程分享

    jQuery 是一個非常優(yōu)秀的 JavaScript 框架,使用簡單靈活,同時還有許多成熟的插件可供選擇,它可以幫助你在項目中加入一些非常好的效果。
    2011-08-08
  • JQuery學習筆記 實現圖片翻轉效果和TAB標簽切換效果

    JQuery學習筆記 實現圖片翻轉效果和TAB標簽切換效果

    為了保證前臺頁面的整潔,我們習慣性地將CSS放入一個單獨的.CSS文件中以便調用,而JS也同樣可以放到單獨的JS文件中去,并且頁面上的事件如onclick,onmouseover也可以分離出來,現在網上比較流行JQuery
    2008-11-11
  • 文本域光標操作的jQuery擴展分享

    文本域光標操作的jQuery擴展分享

    最近的項目中,好幾次用到操作文本域的方法,比如光標位置、刪除光標前字符等。每次都是查閱資料(這部分操作涉及到的js方法都比較生僻),費時費事。于是就封裝了一個jQuery擴展
    2014-03-03
  • jQuery數據緩存功能的實現思路及簡單模擬

    jQuery數據緩存功能的實現思路及簡單模擬

    jQuery緩存系統不僅運用于DOM元素,動畫、事件等都有用到這個緩存系統
    2013-05-05
  • jQuery實現彈幕效果

    jQuery實現彈幕效果

    本文主要分享了jQuery實現彈幕效果的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02

最新評論