JavaScript/jQuery中的Track-pad Tap事件
track-pad tap event in javascript/jquery
有什么方法可以处理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上的触控板似乎不会像实际的触摸设备那样触发TouchEvents。相反,它将手势转换为鼠标事件。
document.addEventListener('mousewheel', function(e) {
console.log(e.wheelDelta);
});
document.addEventListener('touchstart', function(e) {
console.log(e);
});
在上面的示例中,当我尝试在触控板上捕获"捏合/缩放"手势时,我实际上是从滚轮中获取 Delta,就像我按住 CTRL 然后向上或向下滚动一样,返回的 wheelDelta 值为 120 或 -120。为"touchstart"打开事件侦听器不会像我规定的那样写入控制台,除非它在平板电脑或智能手机等触摸设备上。
显然,MackBook可以检测到您何时触摸触控板,因为它能够检测到您的移动,但它似乎无法通过文档获得。
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- jQuery未在私人浏览中触发tap/touchstart事件
- 如何区分mouseenter和tap事件
- 如何在 Javascript 中侦听 Tap 事件
- Cytoscape.js - 获取“.on(tap)”事件位置
- JavaScript/jQuery中的Track-pad Tap事件
- Carrousel tap事件不工作
- “tap"移动端添加"keydown"事件jquery
- 在自定义Angular2组件中使用tap事件
- React Material-UI tap事件问题使用时使用" React -tap-event-plugin