jQuery移動(dòng)web開發(fā)中的頁(yè)面初始化與加載事件
頁(yè)面初始化事件(pagebeforecreate、pagecreate)
Jquery Mobile會(huì)自動(dòng)基于page"內(nèi)的增強(qiáng)的約定自動(dòng)初始化一些插件。例如:給一個(gè)input輸入框約定了type=range屬性會(huì)自動(dòng)生成一個(gè)自定義滑動(dòng)條。這些自動(dòng)初始化的行為是受"page"插件控制的,它在執(zhí)行前后部署部署事件,允許你在初始化前后操作頁(yè)面,或者甚至自己提供初始化行為,禁止自動(dòng)初始化。注以下的頁(yè)面初始化事件在每個(gè)“page”只被觸發(fā)一次,與每次頁(yè)面在顯示或者隱藏的show/hide事件剛剛相反。
pagebeforecreate:頁(yè)面初始化時(shí),初始化之前觸。
pagecreate:頁(yè)面初始化時(shí),初始化之后觸。
$('#aboutPage').live('pagebeforecreate',function(event){
alert('This page was just inserted into the dom!');
});
$('#aboutPage').live('pagecreate',function(event){
alert('This page was just enhanced by Jquery Mobile!');
});
頁(yè)面加載事件(pagebeforeload、pageload)
當(dāng)外部的頁(yè)面加載到dom中時(shí),有兩個(gè)事件被觸發(fā)。第一個(gè)是 pagebeforeload,第二個(gè)是pageload ,或者pageloadfailed。
pagebeforeload
在加載請(qǐng)求發(fā)出之前觸發(fā),綁定到這個(gè)事件的回調(diào)函數(shù)可以可以對(duì) 該事件調(diào)用preventDefault(),來(lái)表明由他們來(lái)處理加載的請(qǐng)求。 這樣的做的話回調(diào)函數(shù)必須對(duì)通過(guò)數(shù)據(jù)對(duì)象傳到回調(diào)函數(shù)的對(duì)象調(diào)用resolve()或者reject()。通過(guò)第二個(gè)參數(shù)傳到回調(diào)函數(shù)的對(duì)象包含如下的屬性:
- url (字符串):通過(guò)回調(diào)傳到$.mobile.loadPage()的絕對(duì)或者相對(duì)地址
- absUrl (字符串):url的絕對(duì)地址版本。
- dataUrl (字符串):絕對(duì)地址的當(dāng)識(shí)別頁(yè)面或者更新瀏覽器地址的時(shí)候使用的絕對(duì)地址經(jīng)過(guò)過(guò)濾的版本
- deferred (對(duì)象):針對(duì)此事件調(diào)用preventDefault()的回調(diào)函數(shù)必須針對(duì)此事件調(diào)用
- resolve()或者reject()方法,使得changePage()的請(qǐng)求恢復(fù)。
例如:
$( document ).bind( "pagebeforeload", function( event, data ){
//讓jqm框架知道由我們來(lái)處理load事件.
event.preventDefault();
//...加載文檔然后插入到DOM中
//在這個(gè)回調(diào)中,或者通過(guò)其他的異步加載手段中,
//調(diào)用resolve,轉(zhuǎn)入到下面的參數(shù)中,加上一個(gè)
//包含有頁(yè)面dom元素的jquery選擇器。
data.deferred.resolve( data.absUrl, data.options, page );
});
pageload
在頁(yè)面已成功加載并插入到DOM后觸發(fā)。綁定到這個(gè)事件的回調(diào)函數(shù)會(huì)被作為一個(gè)數(shù)據(jù)對(duì)象作為第二個(gè)參數(shù)。這個(gè)對(duì)象包含如下的信息:
- url(字符串):網(wǎng)址址。
- absUrl(字符串):url的絕對(duì)地址版本。
相關(guān)文章
基于jquery實(shí)現(xiàn)的tab選項(xiàng)卡功能示例【附源碼下載】
這篇文章主要介紹了基于jquery實(shí)現(xiàn)的tab選項(xiàng)卡功能,涉及jQuery事件響應(yīng)及頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,并附帶源碼下載,需要的朋友可以參考下2019-06-06
jQuery實(shí)現(xiàn)驗(yàn)證年齡簡(jiǎn)單思路
本文給大家分享的是jQuery實(shí)現(xiàn)驗(yàn)證年齡簡(jiǎn)單思路,讓用戶填出生年月,然后根據(jù)當(dāng)前時(shí)間計(jì)算是否小于網(wǎng)站要求的年齡,小于就提示,有需要的小伙伴可以拿去直接使用。2016-02-02
如何書寫高質(zhì)量jQuery代碼(使用jquery性能問(wèn)題)
眾所周知,jQuery現(xiàn)在已經(jīng)非常流行,百度新首頁(yè)中也已經(jīng)開始使用jQuery,今天總結(jié)下怎么書寫更好的jQuery代碼使jQuery代碼更好、更快的執(zhí)行,希望本篇jQuery教程一改大家以前不合理的做法2014-06-06
在jQuery中使用$而避免跟其它庫(kù)產(chǎn)生沖突的方法
這篇文章主要介紹了在jQuery中使用$而避免跟其它庫(kù)產(chǎn)生沖突的方法,總共羅列了三種,需要的朋友可以參考下2015-08-08
如何使用PHP+jQuery+MySQL實(shí)現(xiàn)異步加載ECharts地圖數(shù)據(jù)(附源碼下載)
ECharts地圖主要用于地理區(qū)域數(shù)據(jù)的可視化,展示不同區(qū)域的數(shù)據(jù)分布信息,通過(guò)本文給大家介紹如何使用PHP+jQuery+MySQL實(shí)現(xiàn)異步加載ECharts地圖數(shù)據(jù),需要的朋友參考下吧2016-02-02
HTML+jQuery實(shí)現(xiàn)簡(jiǎn)單的登錄頁(yè)面
這篇文章主要介紹了用三種方法實(shí)現(xiàn)簡(jiǎn)單的登錄頁(yè)面的制作:純HTML、HTML+jQuery(form data)格式、HTML+jQuery(json)格式。感興趣的同學(xué)可以跟隨小編一起學(xué)習(xí)一下2021-12-12

