【问题标题】:$.mobile.changePage is not working$.mobile.changePage 不工作
【发布时间】:2013-05-17 02:32:25
【问题描述】:

我正在使用 $.mobile.changePage 在单击 listview 元素时在新页面上转换。

这就是我的使用方式,

$('ul').children('li').on('click', function () {
 created_date = $.trim($(this).text());
 $.mobile.changePage( "Image.html", {
  transition: 'slide',
  reverse: 'true'
 });                    
});

这是html页面

<div data-role="page" id="SavedImage" >
 <div data-role="header">
  <h1></h1>
  <a href="#"></a>
 </div>
 <div data-role="content">
  <img src="Image/InScope.png" alt="" style="height:100%; width:100%;" />
 </div>
 <div data-role="footer">
 </div>
</div>

它跳转到image.html,当我点击返回按钮时,它必须跳转到listview。但是它跳转到listview页面并再次返回到image.html页面。

如何防止它回到image.html

【问题讨论】:

  • 你必须展示更多相关的代码和标记。
  • @peterm 我已经编辑了我的问题并添加了标记和代码
  • 恕我直言,发布的代码没有错。你能在 jsFiddle 中重现你的问题吗?
  • 上面的代码好像多了一个}?
  • 编辑时发生的@Clinton.. 现在我删除了

标签: jquery cordova jquery-mobile


【解决方案1】:

我看不到您的其余代码,但我想我理解您的问题。如果我推断正确,您的问题很容易解决,我认为您没有告诉我们一切。

让我猜一下,第一次效果很好,但每隔一段时间就会出现你描述的问题。

将您的点击绑定代码更改为:

$('ul').children('li').off('click').on('click', function () { 
    created_date = $.trim($(this).text());

    $.mobile.changePage( "Image.html", {
                        transition: 'slide',
                        reverse: 'true'
    });
});

基本上每次你返回到你的列表页面点击事件都会被再次绑定。每次绑定时,单击 li 元素将触发几个 changePage 事件,这些事件将导致您的问题。

【讨论】:

  • @user2143817 - 是的,你可以按照 Gajotres 的建议去做。
  • @Gajotre 感谢您的回答。但我在 html 页面中定义了&lt;script type="text/javascript"&gt; $(document).on("pageshow", "#SavedImage", function() { alert("in html"); var foldername = sessionStorage.getItem('foldername'); var allignnmae = sessionStorage.getItem('Allignname'); alert(foldername+"\n"+allignnmae); var headerdiv = '&lt;center&gt;&lt;div style="color:#fff;"&gt; in '+foldername+' &lt;/div&gt;' +'&lt;div style="color:#fff;"&gt;'+nnmae+'&lt;/div&gt;&lt;/center&gt;'; $('#savedImageHeader').append(headerdiv); }); &lt;/script&gt;。它不工作。
  • 我已将一个 ID 添加到
    作为 id=savedImageHeader。并尝试将 headerdiv 附加到它。以前它显示
  • 你能用这个新问题更新你的问题吗?它将更具可读性。不用担心,我仍然会在这里为您提供帮助。
【解决方案2】:

我没有在您的代码中看到错误,这可能是浏览器某些意外行为的错误。需要考虑的事项: 我遇到过类似的问题,但我做了以下事情。你可以试试这个。

  • 尝试从链接中删除href="#"
  • false 取反值。
  • 不用changePage()直接申请href="Image.html"data-transition="slide"
  • clickreturn false 中。

如果以上任何一项都不起作用,请转到此问题。这与您所问的问题相同。

jquery-mobile-change-page-to-itself

【讨论】:

  • 我会检查链接。但如果我使用 window.open 而不是 $.mobile.changePage 它工作正常..
  • @user2143817-如果你使用window.open,那么你的整个页面将被重新加载。因此,页面将被缓慢加载。但是,当你使用changePage()时,它会非常快速地更改页面,因为Ajax 请求。如果你用 window.open 填写得很好,那就继续吧。
  • 对于移动设备 window.open 看起来不太好。所以担心使用它。
  • @user2143817-是的。它看起来一点都不好。你不会觉得你的应用程序是一个移动应用程序。所以,尝试解决 changePage() 的问题。 window.open 会显着降低应用程序的性能。
猜你喜欢
相关资源
最近更新 更多
热门标签