jQuery.on"touchstart mousedown" - 两个事件都在触摸屏设备上触发

use*_*690 3 javascript mobile jquery html5

我的问题是我无法取消触发touchstart后触发的mousedown事件.此问题特定于Android的本机浏览器.

Chrome和Safari都在Android和iOS(onMenuInteraction)中成功执行下面的方法.我的问题似乎仅限于Android的原生浏览器(对我而言,预装了Android 4.1.2).

以下是我从Javascript对象中提取的代码.

MenuButtonView.prototype.onSmallScreenSetUp = function() {
    $("#mobileMenuBtn").on( { "touchstart mousedown": $.proxy( this.onMenuInteraction, this ) } );
}

MenuButtonView.prototype.onMenuInteraction = function(e) {
    console.log( this, "onMenuInteraction", e );
    e.stopImmediatePropagation();
    e.stopPropagation();
    e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)

请有人告诉我如何取消手指触摸触发touchstart事件的屏幕后触发的mousedown事件.

此要求基于管理与桌面和移动/平板电脑平台的交互.在您使用Android本机浏览器进行测试之前,一切正常.

非常感谢

d

dew*_*ewd 8

检查是否存在touchstart支持,设置变量以确定您提供的支持:

//touchstart or mousedown
var click = ('ontouchstart' in document.documentElement)  ? 'touchstart' : 'mousedown';
Run Code Online (Sandbox Code Playgroud)

然后使用:

$(element).on(click,function(){
    //do stuff
}); 
Run Code Online (Sandbox Code Playgroud)

请注意,click在此实例中是变量,而不是字符串.

  • 这对于同时具有触摸屏和鼠标的新款笔记本电脑有何用处? (3认同)