jQuery Mobile:页面弹出窗口相互干扰

时间:2016-01-23 08:16:09

标签: jquery html jquery-mobile

我有两个缩小的html文件,i1.html和i2.html - 它们几乎相同,应该很容易运行。

i1.html(page1)有一个popup1页面,允许用户留在page1或转到i2.html(第2页)。

i2.html(第2页)有一个popup2页面,应该允许用户留在第2页或转到i1.html(第1页)。

我在Chrome和Firefox中遇到的问题是page1弹出窗口可以让用户访问i2.html(第2页)。但是一旦在i2.html上,它就无法导航到page1。弹出窗口不会响应。如果我进行移位刷新,它会,但可以注意到弹出页面搞砸了(出现两个很多按钮,看起来像是从i1.html。)

我遇到的一个相关问题是,如何调试一个没有做任何事情的按钮。感谢。

i1.html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>i1</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
  </head>
  <body>
    <div data-role="page" id="page1">
       <div data-role="header">
           <h1>Page 1</h1>
       </div>
       <div data-role="main" class="ui-content">
          <p><a href="#popup1" data-role="button" data-rel="dialog" data-transition="pop">Navigate via popup dialog</a></p>
       </div>

        <div data-role="footer">
           <h1>page bottom</h1>
        </div>
    </div>

    <!-- Start #popup page -->
    <div data-role="page" id="popup1">

        <div data-role="header" data-theme="b">
            <h1>Dialog</h1>
        </div><!-- /header -->

        <div role="main" class="ui-content">
            <h2>Popup</h2>
            <p>Some text</p>
            <p><a href="#page1" data-rel="back" class="ui-btn ui-shadow ui-corner-all ui-btn-inline ui-icon-back ui-btn-icon-left">Back to page one</a></p>
            <p><a href="i2.html" class="ui-btn ui-shadow ui-corner-all ui-btn-inline ui-icon-back ui-btn-icon-left">Go to Page2</a></p>
        </div><!-- /content -->

        <div data-role="footer">
            <h4>Pop up Footer</h4>
        </div><!-- /footer -->
    </div><!-- /page popup -->
  </body>
</html>

和i2.html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>i2</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
  </head>
  <body>
    <div data-role="page" id="page2">
       <div data-role="header">
           <h1>Page 2</h1>
       </div>
       <div data-role="main" class="ui-content">
          <p><a href="#popup2" data-role="button" data-rel="dialog" data-transition="pop">Navigate via popup dialog</a></p>
       </div>

        <div data-role="footer">
           <h1>page bottom</h1>
        </div>
    </div>

    <!-- Start #popup page -->
    <div data-role="page" id="popup2">

        <div data-role="header" data-theme="b">
            <h1>Dialog</h1>
        </div><!-- /header -->

        <div role="main" class="ui-content">
            <h2>Popup2</h2>
            <p>Some text</p>
            <p><a href="#page2" data-rel="back" class="ui-btn ui-shadow ui-corner-all ui-btn-inline ui-icon-back ui-btn-icon-left">Back to page 2</p>
            <p><a href="i1.html" class="ui-btn ui-shadow ui-corner-all ui-btn-inline ui-icon-back ui-btn-icon-left">Go to Page 1</a></p>
        </div><!-- /content -->

        <div data-role="footer">
            <h4>Pop up Footer</h4>
        </div><!-- /footer -->
    </div><!-- /page popup -->
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

好的,我做了一个测试

发生的事情是JQM通过ajax加载页面。当您导航到第2页时

<div role="main" class="ui-content">
            <h2>Popup2</h2>
            <p>Some text</p>
            <p><a href="#page2" data-rel="back" class="ui-btn ui-shadow ui-corner-all ui-btn-inline ui-icon-back ui-btn-icon-left">Back to page 2</p>
            <p><a href="i1.html" class="ui-btn ui-shadow ui-corner-all ui-btn-inline ui-icon-back ui-btn-icon-left">Go to Page 1</a></p>
        </div>

被剥离,因为我怀疑你在另一页上有<div role="main" class="ui-content">,因此按钮不起作用,因为它们没有运行的DOM代码。

enter image description here

关闭ajax导航功能可修复问题data-ajax="false"

   <p><a href="i1.html" data-ajax="false" class="ui-btn ui-shadow ui-corner-all ui-btn-inline ui-icon-back ui-btn-icon-left">Go to Page 1</a></p>

   <p><a href="i2.html" data-ajax="false" class="ui-btn ui-shadow ui-corner-all ui-btn-inline ui-icon-back ui-btn-icon-left">Go to Page2</a></p>

此处有更多信息

http://demos.jquerymobile.com/1.2.1/docs/pages/page-links.html

现在正常工作