2013-04-04 113 views
0

在jQuery手機中通過AJAX從鏈接加載頁面時,直到刷新頁面纔會觸發對話框窗口。如果我嘗試將對話框添加到任何其他頁面,就會發生這種情況。如果我在鏈接到對話框頁面的頁面上添加data-ajax =「false」,則對話框工作得很好。我們希望使用jQuery移動功能和轉換,所以ajax false就不存在了。jQuery Mobile 1.3.0 - 通過AJAX在頁面加載時不打開對話框窗口

我們所有的標題信息在每個頁面上都是一樣的,所有對話框都被正確調用。

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>Mobile Demos</title> 
    <link rel="stylesheet" href="css/jquery.mobile-1.3.0.css"> 
    <script src="js/jquery.js"></script> 
    <script src="js/jquery.mobile-1.3.0.js"></script> 
</head> 
<div data-role="page" data-theme="a" id="dialogpage"> 
    <a href="#foo2" data-rel="dialog" data-role="button" data-inline="true" data-theme="c">Open Basic Dialog</a> 
</div> 
<div data-role="dialog" id="foo2" data-close-btn="right"> 
    <div data-role="header" data-theme="d"> 
     <h1>lorum ipsum header</h1> 
    </div> 
    <div data-role="content"> 
     <p>lorum ipsum</p> 
     <a href="#" data-rel="back" data-role="button" data-inline="true" data-theme="b">Ok, I get it</a> 
    </div> 
</div> 
</body> 
</html> 
+0

可以,你提供javascript你試圖用對話框「觸發」? – chris 2013-04-04 18:38:33

+0

這是jQuery Mobile,對話框是由框架創建的 – Andrew 2013-04-04 19:00:37

回答

0

嘗試將JavaScript加載到文檔底部。

正好在</body>標籤上方。這是優化加載時間和其他原因的最佳實踐方法。比如在某些瀏覽器的情況下(可能大部分是在編寫這段代碼的時候,JavaScript通常只能在加載之前找到加載的東西,而且在你想要顯示javascript的元素之前加載腳本)它的「準備好」功能在元素本身被渲染之前,它可能因爲緩存而刷新刷新,但是在其餘時間因爲腳本無法找到它而失敗

+0

jQuery Mobile特別需要頭腦中的腳本 – Andrew 2013-04-04 19:01:34

+0

儘管如此,試圖在你的UI的其他部分被渲染之前運行,我已經使用了jQuery Mobile,並且我會給你提供這個fac他們希望你把它放在最前面。至於靜態庫和插件文件可能會去,但如果你想在dom完成加載時運行某些東西,你需要將它放在dom的底部,這樣它就不會過早運行。只是因爲jQuery Mobile表示它想要處於頂端並不意味着其他腳本需要(或應該) – chris 2013-04-07 06:16:27

相關問題