最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于hashchangebroker和statehashable的補充文檔

 更新時間:2011年08月08日 23:33:37   作者:  
我覺得之前寫的兩篇隨筆有點不負責任,完全沒寫明白,補充了一份文檔(權(quán)且算是文檔吧=.=)

url hash:url中#號后面那段,通常用來定位到html頁面中某一錨點。因為hash變化頁面不會刷新,所以在ajax應用中用hash來存儲腳本運行狀態(tài),例如gmail的做法。

jquery hash change event plugin: Internet Explorer 8, Firefox 3.6+, 和Chrome 5+里,已經(jīng)提供了window.onhashchange事件,但是在老版本的瀏覽器中并沒有這個事件,這個插件通過定時器判斷hash是否產(chǎn)生了變化,以便在老版本的瀏覽器重提供hashchange事件。

hashchangebroker:之前寫了這個jquery extend,提供了四個方法:

$.hashchangebroker.subscrib(fragName, handler)

  訂閱fragName對應的hash段落變化,并轉(zhuǎn)發(fā)給指定的handler。
  url hash由若干個frag組成,一個frag格式為:[fragName]:[state]。fragName為自定義hash狀態(tài)名稱。state為base64編碼的json字符串。
  handler只有一個參數(shù)state:json格式字符串,描述自定義狀態(tài)。

$.hashchangebroker.publish(hash)

  此方法應綁定到window.onhashchange事件。接收hash并解碼找到變更的frag,并轉(zhuǎn)發(fā)給訂閱該frag的handler。

$.hashchangebroker.changeFrag(fragName,state)

  此方法由statehashable類型調(diào)用,用于修改hash中對應fragName的frag的state。

$.hashchangebroker.init()

  此方法用于在頁面刷新后,獲取hash并publish。在$(document).ready中調(diào)用即可。應放到所有subscrib方法之后。

statehashable:提供這個widget是希望可以比較方便的將控件的狀態(tài)發(fā)布到url hash,并獲取控件對應的hash frag的state變化,觸發(fā)相應的statechange事件。

用法$(dom).statehashable();調(diào)用此方法后,給dom對象增加了hashchange事件。當statehashable對象發(fā)現(xiàn)控件對應的hash frag變化后,會觸發(fā)dom對象的hashchange事件。
使用方法:

復制代碼 代碼如下:

$(dom).bind("hashchange",function(e,stateObj){
//判斷stateObj的狀態(tài),還原dom到對應的狀態(tài)
});

應在更改dom狀態(tài)的方法中增加statechange的事件觸發(fā),statehashable對象會捕捉該事件,并調(diào)用hashchangebroker的changeFrag方法,修改hash。statechange觸發(fā)示例:
$(dom).trigger("statechange",[stateName,stateValue]);

相關(guān)文章

最新評論

哈巴河县| 广平县| 新密市| 台东市| 汉源县| 全州县| 白银市| 吴川市| 江达县| 边坝县| 革吉县| 乌拉特中旗| 屯昌县| 稻城县| 碌曲县| 南靖县| 芦溪县| 兴城市| 新河县| 大田县| 石林| 黄骅市| 临清市| 永定县| 郑州市| 常宁市| 嵊泗县| 二连浩特市| 扎鲁特旗| 台中市| 昭平县| 资兴市| 阿克陶县| 措美县| 邓州市| 禹州市| 吉林市| 呼图壁县| 天柱县| 抚州市| 泗阳县|