![](/img/trans.png)
[英]jquery mobile - pageinit event no triggered when using mobile.changePage
[英]mimic the changePage and pageinit of jquery mobile in jquery
當我單擊page A
page B
的window.location.href
從page A
page B
移至page B
時,我現在擁有兩個html頁面page A
和page B
page A
現在我想要的是每當page B
加載時我只想觸發page B
load
事件
例如,這是page B
的內容
<body>
<div id="myList">
<h1>Page B </h1>
</div>
</body>
我想知道兩件事
page B
加載時,我想捕獲page B
事件load
div
標簽myList
加載時,我也要捕獲其load
事件。 我已經嘗試按照以下步驟進行myList
加載,但是沒有啟動任何操作,而且我不知道應該為特定頁面加載使用什么,即僅用於page B
$("#myList").on('load',function(){ });
我正在使用jqyery 1.9
,總之我想模仿jquery mobile的changePage
和pageinit
函數
我認為我們離解決方案太遠了,我們需要退后一步去看看森林里有沒有樹木。 從最遠的距離看來,也許您根本不應該有兩個頁面,而是根據開關加載內容框。
但是現在讓我們忽略它。 如果您只是想“計算”來自頁面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.