簡體   English   中英

在jquery中模擬jquery mobile的changePage和pageinit

[英]mimic the changePage and pageinit of jquery mobile in jquery

當我單擊page A page Bwindow.location.hrefpage A page B移至page B時,我現在擁有兩個html頁面page Apage B page A

現在我想要的是每當page B加載時我只想觸發page B load事件

例如,這是page B的內容

 <body>

       <div id="myList">
               <h1>Page B </h1>
      </div>

 </body>

我想知道兩件事

  1. 每當page B加載時,我想捕獲page B事件load
  2. 每當div標簽myList加載時,我也要捕獲其load事件。

我已經嘗試按照以下步驟進行myList加載,但是沒有啟動任何操作,而且我不知道應該為特定頁面加載使用什么,即僅用於page B

$("#myList").on('load',function(){ });

我正在使用jqyery 1.9 ,總之我想模仿jquery mobile的changePagepageinit函數

我認為我們離解決方案太遠了,我們需要退后一步去看看森林里有沒有樹木。 從最遠的距離看來,也許您根本不應該有兩個頁面,而是根據開關加載內容框。

但是現在讓我們忽略它。 如果您只是想“計算”來自頁面A的頁面B上的負載,那么我們需要查看引薦網址。 通過查看document.referrer值,可以輕松完成此操作。 因此在B頁中:

$(function(){
  var hasRun;

  if ( ! hasRun && document.referrer === '<http_path_to_doc_a>' ) {
    // do something
  }

   hasRun = true;
});

這應該夠了吧。 注意,DOM准備就緒后,$()閉包將執行該函數。 正如您所發現的,“加載”事件僅適用於某些DOM元素,不適用於任意節點。 我認為jquery會考慮document.load,但我必須對其進行100%確定。 無論如何,即使出於這種考慮,也無需這樣做。

也不需要hasRun標志,但是永遠不要太小心。 至少當它這么便宜時:)

如果完全限定的HTTP / S路徑過於嚴格,則可以對引薦來源網址字符串進行一些處理,以使匹配更寬松。 例如:

refer_str  = document.referrer;
refer_list = refer_str.split('/');
file_name  = refer_list.pop;
file_path  = refer_list.join('/');
if ( ! hasRun && file_name === 'pageB.html' ) { ... // as before

祝好運!

答案在某種程度上取決於您實際要加載頁面的方式。 在頁面B中,您可以使用jQuery的文檔了

<script>
    $(document).ready(funciton () {
        // do whatever...
    });
</script>

該函數運行時將加載<div id="myList"> 如果使用javascript構建頁面,則可以觸發特定元素的加載事件,但是除非有充分的理由這樣做,否則它並不理想,因為它的速度要慢得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM