2013-04-04 115 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

相关问题