我有一个小型网页应用,只不过是几个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()
进行测试以查看是否正在引发click事件,执行测试警报,因此它不是click事件的问题,它是对话框本身或jQuery UI不是被装载。
我也试图像这样举起一个对话,而不是与DIV或事件相关联,但即使这样也不起作用
$( "<div>this is a test</div>" ).dialog()
有没有其他人在使用iPad对话框时遇到问题?
我不确定这是否相关,但我的应用程序是一个使用.load()方法引入HTML内容的mainHTML文件
答案 0 :(得分:0)
从$(function() { ... })
块中创建对话框。
该块相当于document.ready
处理程序,此时您的文档肯定已完全准备就绪......
答案 1 :(得分:0)
很抱歉回答我自己的问题,但我检查了UI是否正在加载......
var isiPad = navigator.userAgent.match(/iPad/i) != null;
if(!jQuery.ui && isiPad == true){
// do stuff...
}
我考虑过动态地将UI脚本附加到我的网页正文中,但是我使用的是jQuery UI的托管版本。当我通过下载替换本地版本的问题似乎消失了...因此答案是托管版本加载太长时间或根本没有加载。对不起戏剧...