android - fastclick.js JQuery Mobile Phonegap 和 Android

标签 android jquery-mobile cordova fastclick.js

我无法让所有这些一起工作。我有 phonegap/JQM 在 iOS 上完美地运行 fastclick.js。这只是个梦。但出于某种原因,我在 android 上仍然有 300 毫秒的延迟。我放入了一些警报并且正在调用代码。真是莫名其妙。我正在摩托罗拉机器人 Razor maxx 上进行测试。

在我的 index.html 文件中:

<!DOCTYPE html>
<html>
    <head>
        ...
        <script type='application/javascript' src='js/fastclick.js'></script>
    </head>
    <script>
    $(document).on("pagebeforechange", function (e, data) {
        FastClick.attach(document.body);
        alert('fastclick attached');
        var to_page = data.toPage[0].id;
        // skip showing #myPage if condition is true
        if (to_page == "index") {
            $.mobile.pageContainer.pagecontainer('change', 'event-list.html');
            e.preventDefault();
        }
    });

    </script>
    <body>
        <div id="index" data-role="page">
        This is the index page.
        </div>
    </body>
</html>

但是好像不行。我也试过像这样附加它:

window.addEventListener('load', function() {
    new FastClick(document.body);
}, false);

两者都适用于 iOS,但似乎对 Android 没有任何影响。有什么建议吗?

编辑:似乎如果我删除 JQuery 库,它就可以正常工作。某处一定有冲突。知道它可能是什么吗?我正在使用 JQM 1.4。

编辑:我也尝试过使用 vclick 无济于事

$("#test-element").bind('vclick',function() {
    $.mobile.pageContainer.pagecontainer('change', 'description.html?lunch_pk=2133',{
        transition: "slide",
    });
});
...
<h1 id='test-element'> CLICK HERE FOR TEST </h1>

我还使用手势来更改页面,这些页面也被延迟了 300 毫秒,所以我认为即使 vclick 可以正常工作,它也不是一个完整的解决方案。

编辑:好的,所以在进一步测试之后,我很确定延迟来自 JQM 页面更改函数内部。我在 vclick 中做了一个 console.log,当我按下按钮时,日志非常灵敏。我正在尝试深入研究 JQM 但不是很成功,我的意思是为什么它在 iOS 上会是无缝的而不是在 android 上工作?也许我只需要找到一个更好的移动图书馆。

回答

我一直没能解决这个问题。我的解决方案是切换库。我使用了 Intel 的移动应用程序框架,它能够完成我使用 JQM 所做的一切,而且更加成功。

最佳答案

您可以尝试 vclick 而无需尝试 onclicks。这些内置的 jQuery Mobile vclick 省略了 300 毫秒的延迟。我通过这样做来做到这一点。

$("#element").bind('vclick',function(event) {
   yourFunction(this.id);
   event.preventDefault();// this prevents the default click event
});

关于android - fastclick.js JQuery Mobile Phonegap 和 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21870922/

相关文章:

android - 难以理解 phonegap android vs webview

Android:不同语言的 "String Array",输入 "Assets"还是 "strings.xml"?

javascript - 页面加载后,silentScroll 将被撤消

visual-studio - 无法在 Visual Studio 2017 上选择 Cordova Global

cordova - 图标错误构建 Cordova

jquery - js 函数生成 href 以包含数据角色 ="button"

android - 任何应用程序可以监控哪些传感器或 CPU 耗尽电池生命周期?

android - 线程是否停止执行并继续?这只是令人困惑

android - 在 Android 中使用不同的 google-service.json 进行测试

jquery-mobile - 如何在 jQuery Mobile 中动态创建可折叠集的动画