0

我有一个小型网络应用程序,不过是几个 HTML 页面。我希望在我的应用程序中使用 jQuery UI 对话框,我让它在我的 Mac 和 PC(Sarafi、Chrome、Firefox)上的浏览器中运行,并且我已经部署到 android(Xoom 2)并且一切都很好但是对话框不是当我在 iPad (iPad 2) 上测试时触发。我还注意到,在 iPad 上查看页面时,包含对话框内容的 DIV 并未隐藏。

这是我的JS代码...

$('#entry_level_phones .boxHolder').live("click", function(){

    var clickedItem = $(this).find("img")[0].id;

    console.log(clickedItem);
    // raise a modal...
    $(function() {
        $( "#dialog-modal" ).dialog({
            modal: true,
            draggable:false,
            height:600,
            position:"center",
            resizable:false,
            width:1000
        });

   // more happens here which isn't important... but there is no conflict or error
  });
});

这是相关的 DIV ...

<div id="dialog-modal" title="">
    <p>Hello World</p>
</div>

当通过放置一个alert()查看是否引发点击事件进行测试时,会执行测试警报,因此点击事件不是问题,它是对话框本身或未加载 jQuery UI。

我也尝试引发这样的对话框,而不与 DIV 或事件相关联,但即使这样也不起作用

$( "<div>this is a test</div>" ).dialog()

有其他人在使用 iPad 的对话框时遇到问题吗?

我不确定这是否相关,但是我的应用程序是一个 mainHTML 文件,它使用 .load() 方法引入 HTML 内容

4

2 回答 2

0

从该$(function() { ... })块中创建对话框。

该块相当于一个document.ready处理程序,此时您的文档肯定已经完全准备好了......

于 2012-10-17T09:49:28.103 回答
0

很抱歉回答我自己的问题,但我检查了是否正在加载 UI...

var isiPad = navigator.userAgent.match(/iPad/i) != null;

if(!jQuery.ui && isiPad == true){
    // do stuff...
    }

我考虑过将 UI 脚本动态附加到我的网页正文中,但是我使用的是 jQuery UI 的托管版本。当我通过下载将其替换为本地版本时,问题似乎消失了......因此答案是托管版本加载时间过长或根本不加载。对不起剧情...

于 2012-10-17T10:54:07.150 回答