JQuery移动工具提示弹出(“关闭”)功能在IPhone 5中不起作用

时间:2013-02-21 18:25:41

标签: jquery iphone html5 jquery-mobile

在我的JQuery Mobile网站中,我添加了一个工具提示对话框,在页面加载时打开,它会在5秒后消失。我的代码类似于以下内容,

  <div data-role="popup" id="popupInfo">
     <p>This is a completely basic popup, no options set.<p>
  </div>

  <script type="text/javascript">
 $(document).live( 'pagechange',function(event){
     $('#popupInfo').popup("open")
      setTimeout(function() {
      $('#popupInfo').popup("close");
      }, 5000);
  });
   </script>

此更新在除 IPhone 5 iOS 6 之外的所有设备中均正常运行。因为当我尝试在 IPhone 5 iOS 6 设备中加载带有上述脚本的JQuery移动页面时,它会在弹出窗口关闭时将我重定向到上一页。我不确定我在这里错过了什么,但对我来说,看起来jQuery Mobile 弹出(“关闭”)功能不支持 iPhone 5 iOS 6 。< / p>

此外,当工具提示加载跟随哈希标记文本后附加到网址时,我们如何才能避免此#&ui-state=dialog

有谁能告诉我们如何解决这个问题?

我甚至尝试过以下代码;

 $(document).on('pagechange',function(event){
        $('#popupInfo').popup("open").delay(2000).popup("close");

    });

但这根本不起作用

4 个答案:

答案 0 :(得分:14)

知道了。将data-history="false"添加到popupBasic弹出广告。

<!-- Button / works without it -->
<a href="#popupBasic" data-rel="popup">Open Popup</a>

<!-- Popup #popupBasic -->
<div data-role="popup" id="popupBasic" data-history="false">
<p>This is a completely basic popup.<p>
</div>

JS:

<script type="text/javascript">

 $(document).live( 'pagechange',function(){
 $('#popupBasic').popup("open")
  setTimeout(function() {
  $('#popupBasic').popup("close");
  }, 5000);
 });

</script>

JSfiddle:Popup

答案 1 :(得分:1)

另外也可以..jquery mobile使用ID =“yourpopupid-popup”的div包围弹出窗口 所以你可以简单地隐藏那个div。

  
    

例如:       &LT; div id =“basic”data-role =“popup”&gt;我弹出&lt; / div&gt;      ,然后你可以通过以下方式关闭它:     的 $( '#基本-弹出')隐藏();

  

答案 2 :(得分:1)

使用两个函数hide()或单击按钮

时可以使用close()函数

答案 3 :(得分:0)

我在使用弹出窗口工具栏菜单(jQuery Mobile 1.2)时遇到了同样的问题。例如:

<a href="#popupBasic" data-rel="popup">Open Popup</a>

<!-- Popup #popupBasic -->
<div data-role="popup" id="popupBasic" data-history="false">
<ul data-role="listview" data-inset="true">
<li><a href='item1.html'>Item1</a></li>
</ul>
</div>

上面的代码在iPhone 5上不起作用(但适用于Android,iPhone4等)。如果我按照下面的说法进行更改就可以了。

<a data-ajax="false" href='item1.html'>Item1</a>