2011-11-16 47 views
4

這是我的理解是jQuery Mobile的hashListeningEnabled一直聽哈希值發生變化,即使設置爲false

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).bind('mobileinit', function() { 
    $.mobile.ajaxEnabled = false; 
    $.mobile.hashListeningEnabled = false; 
}); 
</script> 
<script type="text/javascript" src="//code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.js"></script> 

,然後一些HTML一樣

<div data-role="content"> 
    <span id="lat"></span> 
    <span id="long"></span> 
    <ul data-role="listview" data-inset="true"> 
     <li> 
      <a href="/#nowhere">Check out item one</a> 
     </li> 
    </ul> 
</div> 

<div data-role="page" id="nowhere"></div> 

不應導致任何導航發生。但它是。我真的想禁用哈希監聽,以便我可以自己處理事件。

我錯過了什麼嗎?或者這是一個錯誤?

+0

我也嘗試添加$ .mobile.linkBindingEnabled = false;和$ .mobile.pushStateEnabled = false;並且鏈接仍然被拾起。 –

回答

10

$.mobile.ajaxEnabled= false;應該工作,我會考慮的..

否則只是手動$ .mobile.changePage

刪除href和所做的一切編輯

我已經做了一些測試,似乎你必須切換到RC3,因爲這個新的選項:

新的linkBindingEnabled選項

即使AJAX導航功能被禁用以便我們處理交互狀態和其他功能,jQuery Mobile也會自動綁定文檔中錨點標記的點擊。對於在所有鏈接中尋找簡單的方法來說「脫手」的人來說,將新的linkBindingEnabled全局配置選項設置爲false將會阻止所有錨定點擊處理,包括添加活動按鈕狀態和替代鏈接bluring。只有在嘗試將點擊管理委派給其他庫或自定義代碼時才應該使用此功能。

$(document).bind('mobileinit', function() { 

     $.mobile.hashListeningEnabled = false; 
     $.mobile.linkBindingEnabled = false; 

    }); 

這對我有用!

+0

謝謝,看來rc2是相當錯誤的......有很多東西現在不工作,現在我已經切換到RC3。 –