Cordova/Android on click/tap/vclick/touchstart 不工作
Posted
技术标签:
【中文标题】Cordova/Android on click/tap/vclick/touchstart 不工作【英文标题】:Cordova/Android on click/tap/vclick/touchstart not working 【发布时间】:2016-08-27 08:12:27 【问题描述】:注意:以下问题仅发生在 4.4.2 以上的 Android 版本上(据我所知)
TL;DR 按钮附有 click/tap/vclick/touchstart,在我的 cordova 应用程序(仅限 android)中似乎只能部分工作(10-30% 的时间)。
我正在尝试为 ios/android/windows 开发一个混合应用程序。在应用程序中,我会有偶尔需要触发某些操作的按钮。
一般我会使用.on('click', function() ... );
,但我了解到click
并不能真正与移动设备配合使用。
我尝试将click
更改为vclick
、tap
和touchstart
。但似乎没有什么能触发我的点击事件。
接下来我尝试查看是否有任何 css 阻止了我的触发器,但没有一致的。
问题在于,当我在控制台中应用以下代码时,它有时会起作用(并非总是如此):
$('.anyElement').on('tap', function()
console.log("tapped");
);
我还尝试了以下方法,因为我认为绑定以某种方式搞砸了:
$('.anyElement').off().on('tap', function()
console.log("tapped");
);
所以目前我有点不知道该去哪里找了。如果有办法让我弄清楚为什么我的东西没有被触发,那就太好了!
【问题讨论】:
【参考方案1】:在英特尔 xdk 上的科尔多瓦 jquery 应用程序上遇到了同样的问题,为我解决了这个问题,至少现在是在我的 index.html 中评论“fastclick.min.js”。似乎 fastclick.min.js 是导致 android 问题的原因,因为它在 IOS 上运行,请查看http://community.phonegap.com/nitobi/topics/simple-js-events-like-onclick-are-not-working-on-devices 他还通过删除一些冲突的 js 来解决它,在他的情况下为“smoothstate.js”。我仍在尝试找出更好的解决方法,如果它存在的话
【讨论】:
很遗憾我没有使用 fastclick 库。但是,我确实尝试检查其他库并对其进行评论,但对我来说没有任何改变。这是我正在使用的库的快速摘要:cordova.js、jquery-1.8.2.min.js、jquery.mobile-1.3.0.min.js、jquery.event.drag-2.2.js、jquery .mobile.simpledialog2.min.js、jQMProgressBar.js、slick.core.js、slick.grid.js、slick.dataview.js、slick.pager.js、toastr.min.js、moment.min.js、下划线.min.js、data-selector.js 和 statusbar.js以上是关于Cordova/Android on click/tap/vclick/touchstart 不工作的主要内容,如果未能解决你的问题,请参考以下文章
点击事件click和.on('click') 两者之间的区别