【问题标题】:Unusual back button behavior jquery mobile, phonegap/cordova不寻常的后退按钮行为 jquery mobile,phonegap/cordova
【发布时间】:2013-09-24 21:04:34
【问题描述】:

我在 JQM 中的后退按钮有一个相当烦人且不寻常的问题。我已经完成了一切设置和工作,页面转换很好地滑动,后退按钮工作得很好。但是,一旦我在应用程序中加载视频(我正在使用 rel="external")然后导航回主页,向后滑动过渡在最后一个后退(让我登陆主页的那个)上不起作用然后运行我的菜单轮播的javascript无法加载。这只发生在我加载视频然后尝试使用后退按钮返回菜单后,如果我不加载视频,一切都会正常运行。

奇怪的是,这在 Safari 中不会发生,但在 Chrome 中以及当应用程序打包在 xcode 中并在模拟器中运行时会发生。

我使用自定义图像作为后退按钮,所以我的后退按钮代码如下:

<div data-role="page" id="page1">

<div data-role="header" data-tap-toggle="false" data-position="fixed" class="header" data-id="myheader">
        <div id="backarrow">
           <a href="javascript:history.back()">
                <img src="img/Arrow_Icon_JQuery_Design.png" width="6%" alt=""/>
           </a>
         </div>
    </div>

以及链接到视频的代码:

<div class="watchvidbutton">
  <a href="videos/video_1.mp4" rel="external">
   <img src="img/Watch_Video_2_JQuery_Icon.png" width="25%" alt=""/>
  </a></div>

仅供参考,主页和视频之间只有 3 次跳转。导航结构如下所示:

#page ---> #page1 ---> #page2(video link on this page)

#page2 ----> #page1 ----(broken back button behaviour)---> #page

提前感谢您的任何见解。

【问题讨论】:

  • 使用$.mobile.changePage('home.html') 导航到上一页。使用 rel=external 时,JQM 加载页面时不使用 Ajax,因此之前的页面会从 DOM 中删除。
  • 这是否适用于自定义图像作为后退按钮?如果是这样,我是否只使用data-direction="reverse"
  • 是的,给img或按钮一个id,并附加一个click事件监听器。点击后,拨打$.mobile.changePage('URL', { transition: 'flip', reverse: true });
  • &lt;script&gt;$(function() { $("#changePageButton").click(function() { $.mobile.changePage('#page', { transition: 'slide', reverse: true } ); }); });&lt;/script&gt; 这解决了过渡问题,谢谢。但是,javascript 未触发的问题仍然存在。如果我在 chrome 中手动调整窗口大小,它会立即触发,这很奇怪。
  • 它应该像$("#changePageButton").on('click', function () { $.mobile.changePage('home.html', { transition: 'slide', reverse: true }); }); 没有$(function() { });。注意使用#page是不行的,因为它没有加载到DOM中,所以你需要加载.html文件。

标签: javascript jquery jquery-mobile cordova


【解决方案1】:

尝试使用 JQM 上的本机后退按钮,而不是使用 javascript 方法 (history.back)。试试这个:

<a data-direction="reverse" data-icon="back" data-rel="back" data-iconpos="notext" data-transition="slide">Back</a>

【讨论】:

  • 恐怕这会产生完全相同的结果。另外,我几乎抛弃了所有主题/原生 JQM 元素以支持自定义,所以如果可能的话,我想避开它。
  • 你能尝试一件事吗? 1)从主页,转到您的视频页面,2)播放视频一次。 3) 现在,如果您单击一次后退按钮,它将不起作用。 4)尝试再次点击,看看是否返回上一页?
  • 后退按钮确实让我回到上一页,无论是您的建议还是我当前的自定义页面,但问题是该页面并没有像它应该的那样“反向幻灯片”和 javascript 主页菜单轮播不触发...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多