我正在开发这个小网站:Website;并且我正在使用HammerJS作为触摸支持库。
它似乎对事件做出了响应,并且识别event.type
属性,但是当我尝试获取drag
事件的event.direction
或其他相关属性时,控制台没有输出任何结果(我在控制台中记录结果)。
这是我监听drag
事件的方式:
Application.ApplicationController.prototype.Drag = function(selector, delay, callback) {
return $(selector).on('drag', _.debounce(function(event){
event.preventDefault();
return (typeof callback === 'function' && callback !== undefined) ? callback.apply( event, [ event ] ) : 'Argument : Invalid [ Function Required ]';
}, delay));
};
我将其称为类似于:
this.Drag(selector, delay, function(event) {
console.log(event.type, event.direction);
});
请问有人能告诉我我做错了什么或者是否遗漏了什么吗?
编辑:我刚刚用旧版本的jquery.hammer.js替换了jQuery库:jquery.specialevents.hammer.js,现在似乎对所有事件都有响应,并获得了所有应该获得的属性。但我仍想知道为什么我尝试使用的那个不起作用?
编辑:我已经找到了问题的根本原因,我的代码依赖一些库,我正在使用Yepnope脚本加载器异步加载这些库,所以在某个地方,它没有加载所有库(包括hammer.js的jQuery插件),其中一些库丢失了 :) 我已经解决了这个问题,现在事件具有它们应该具有的属性。
event.type
的记录值,但是event.direction
的值未定义。 - Asad Saeeduddin.on
之前在方法链中添加.hammer()
了吗?就像这样$(selector).hammer().on(...
- Asad Saeeduddin