changePage"跳转"回旧页面

Uel*_*eli 20 webkit android-browser jquery-mobile css-transitions

我在使用jQuery Mobile Application时遇到了一个大问题:我正在使用自定义函数(它们由onClick触发)来切换页面和currentPage.

它只发生在使用集成浏览器更改(由于ajax请求)的站点上的Android设备上.iOS和Chrome效果很好.

单击元素后,动画开始但在结束之前,它会切换回旧页面.半秒后,它切换回新的.

我在这里制作了一个错误的电影:http://www.youtube.com/watch?v = sXxvVUxniNg

非常感谢你

代码(CoffeeScript):

class Guide

    @categoriesLoaded = false

    @loadSearch: ->

        $.mobile.changePage $("#guide"),
            transition: 'slide'
            changeHash: false

        if !@categoriesLoaded

            @categoriesLoaded = true

            GuideApi.getCategories (data) ->
                output = Mustache.render $("#tmpl-guide-categories-select").html(), 
                    categories: data

                $("#guide-search-category").append output

                $("#guide-search-category").val($("#guide-search-category option:first").val());

window.WgSwitchGuide = ->
        Guide.loadSearch
Run Code Online (Sandbox Code Playgroud)

小智 10

我遇到了同样的问题.我尝试了一切,最后以解决方案结束.我发现错误主要是在浏览器中.所以我将pushStateEnabled的配置设置为false.我通过执行以下操作,添加此脚本.

<script type="text/javascript">
$(document).bind("mobileinit", function(){
$.mobile.pushStateEnabled = false;
});
</script>
Run Code Online (Sandbox Code Playgroud)

它应该在调用jquery-mobile脚本之前添加,有关更多信息,您可以在JQuery描述中看到它

它解决了问题不再跳回来.

  • 我真的希望我有时间理解为什么这样有效,但它对我有用. (2认同)

Sam*_*k R 4

我在 android 和 ios 上都遇到了完全相同的问题。对我来说,这种情况发生在重型页面上,即具有复杂元素的页面等。看起来您正在使用“幻灯片”过渡,这也是我正在使用的。删除这些页面的页面转换(即 $.mobile.changePage("page.html", {transition: "none" }))为我解决了这个问题。希望这可以帮助。

如果您想保留过渡,可以尝试在显示上一页时先使用 $.mobile.loadPage 预加载页面,然后再显示过渡。我自己正在探索这条路线,但可能值得尝试。

编辑:好的 - 我探索了最后一个建议,但这似乎不起作用。将坚持第一个选项。