有什么方法可以处理来自Mac触控板的水龙头吗?
我需要在触控板上处理“点击”和“单击”,尤其是在Mac上。
我试过了
$.event.special.tap = {
setup: function(data, namespaces) {
var $elem = $(this);
$elem.bind('touchstart', $.event.special.tap.handler)
.bind('touchmove', $.event.special.tap.handler)
.bind('touchend', $.event.special.tap.handler);
},
teardown: function(namespaces) {
var $elem = $(this);
$elem.unbind('touchstart', $.event.special.tap.handler)
.unbind('touchmove', $.event.special.tap.handler)
.unbind('touchend', $.event.special.tap.handler);
},
handler: function(event) {
event.preventDefault();
var $elem = $(this);
$elem.data(event.type, 1);
if (event.type === 'touchend' && !$elem.data('touchmove')) {
event.type = 'tap';
$.event.handle.apply(this, arguments);
} else if ($elem.data('touchend')) {
$elem.removeData('touchstart touchmove touchend');
}
}
};
$('.thumb img').bind('tap', function() {
//bind tap event to an img tag with the class thumb
}
哪个没有用。
如何在触控板上捕获点击事件?
最佳答案
我也有同样的担忧。看起来,例如MacBook上的触控板不会像实际的触摸设备那样触发TouchEvent。相反,它是将手势转换为MouseEvents。
document.addEventListener('mousewheel', function(e) {
console.log(e.wheelDelta);
});
document.addEventListener('touchstart', function(e) {
console.log(e);
});
在上面的示例中,当我尝试在触控板上捕获“捏/缩放”手势时,实际上是从滚轮上恢复Delta,就像按住CTRL然后向上或向下滚动一样,返回wheelDelta值120或-120。除非我在平板电脑或智能手机之类的触摸设备上使用,否则将事件侦听器用于“touchstart”不会写入我指定的控制台。
显然,MackBook可以检测到您何时触摸了触控板,因为它可以检测到您的移动,但是似乎无法在文档中找到它。