我正在为移动设备创建一个网络应用程序,我正在使用ontouchend进行大多数但不是所有的“点击” 问题是我想在ontouchend函数上禁用onclick事件。有任何想法吗? 感谢
答案 0 :(得分:4)
对于移动设备,使用touchend事件切换点击事件。使用JQuery,您可以使用.on()添加多个事件,但是如果同时添加触摸和单击事件,则两个事件都会触发,从而导致多个触发器。最好使用如下所示的开关:
var eventType = (/Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone/i.test(navigator.userAgent) ) ? 'touchend' : 'click';
$('#item').on(eventType, function(e) {
//do something
});
或者我也将它用作触摸设备的通用开关:
var isTouchDevice = (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
var eventType = (isTouchDevice) ? 'touchend' : 'click';
答案 1 :(得分:2)
这是一个完全猜测,但我认为你需要为你想忽略的每个click事件创建一个事件处理程序,然后在函数中只有e.preventDefault(),其中e是事件对象。
然后,这将同时运行两个事件,但是click事件只会做什么,而你只剩下来自ontouchend事件的代码。
很可能有更好的方法来做到这一点,就像我说的那样,只是猜测!
希望它有所帮助: - )
安德鲁