1

我有一个 jQuery Mobile 应用程序,我试图通过 Phonegap 在 Galaxy Tab 设备上运行。一切都按预期工作,但我有一个用于在一组页面之间转换的滑动,它非常滞后。

我实际上正在使用 knockoutJS 和这样的自定义绑定:

<!-- ko foreach: factors -->
<div data-role="page" data-bind="attr: { id: id }, swipe: $data"> 
    <!-- some content here that I don't *think* is the problem -->
</div>
<!-- /ko -->

ko.bindingHandlers["swipe"] = {
    init: function (element, valueAccessor) {
        var qe = $(element);
        var val = ko.utils.unwrapObservable(valueAccessor());
        qe.bind("swipeleft", function () {
            var next = qe.next("div[data-role='page'][data-bind*='swipe']");
            if(next.length) {
                $.mobile.changePage(next, {
                    transition: "slide"
                });
            } else {
                qe.effect("shake");
            }
        });
        qe.bind("swiperight", function () {
            var prev = qe.prev("div[data-role='page']");
            if(prev.length) {
                $.mobile.changePage(prev, {
                    transition: "slide",
                    reverse: true
                });
            } else {
                qe.effect("shake");
            }
        });
    }

我尝试从页面中删除几乎所有内容,但没有帮助。我尝试用 and 替换slide过渡,none这有点帮助,但性能仍然慢得令人无法接受。

有什么技巧或提示可以使这项工作相当顺利吗?

4

1 回答 1

2

这至少给了我一个部分解决方案:

使用 jQuery Mobile 1.2、PhoneGap 2.1 和 Android 4.0.4 滑动无法正常工作

似乎绑定vmousemouse并将其设置为preventDefault使滑动效果更好,但同时它会禁用滚动!

于 2013-01-02T21:17:51.887 回答