2011-02-25 78 views
3

而不是使用ajax調用,我創建並向$ .mobile.pageContainer注入頁面。 Dynamically creating jQuery Mobile pages using jQuery Templates如何防止jQuery Mobile在動態注入html頁面時發出ajax調用

當我想訪問帶有散列標籤(在我的onReady函數中生成的標籤)的頁面時,jQuery手機會嘗試進行ajax調用。它失敗。當我的onReady函數被調用時,我必須檢查url並調用$ .mobile.changePage()來顯示它。

var loc = window.location.href; 
var loc = loc.split('#').pop(); 
if (loc !== "http://lift.pageforest.com/") { 
    $.mobile.changePage(loc, 'pop', false, true); 
} 

這一切很好,但jQuery Mobile的仍然取得導致拋出控制檯以及顯示給用戶一個很大的錯誤DIV錯誤失敗的Ajax調用。

我試着重寫$ .mobileinit函數ajaxEnabled()爲false,因爲我永遠不會使用ajax。 http://jquerymobile.com/demos/1.0a3/#docs/api/globalconfig.html 不幸的是,創造了一大堆其他問題。

爲什麼jQuery Mobile會自動假定我想使用ajax,並且我不會在自己的onReady函數中生成任何內容?我如何解決這個問題?

轉貼在這裏: http://forum.jquery.com/topic/how-to-disable-automatic-ajax-calls-when-dynamically-creating-pages

+0

你有沒有演示你的頁面在哪裏發生這種事情? –

回答

0

你可以使用event.preventDefault();?

http://api.jquery.com/event.preventDefault/

或者,如果你在你的鏈接設置爲rel =「外在」和JQ類選擇它會阻止默認的內部鏈接。

<a href="#mylink" class="hash-link" rel="external">Link</a> 

<script> 
$('.hash-link').click(function() { 

    var loc = window.location.href; 
    var loc = loc.split('#').pop(); 
    if (loc !== "http://lift.pageforest.com/") { 
     $.mobile.changePage(loc, 'pop', false, true); 
    } 

}); 
</script> 
相關問題