【发布时间】:2013-01-06 21:19:40
【问题描述】:
我正在开发这个小网站:Website;我正在使用 HammerJS 作为触摸支持库。
它似乎正在响应事件,并且它识别 event.type 属性,但是当我尝试将 event.direction 或其他相关属性获取到 drag 事件时,控制台中没有任何输出(我正在控制台中记录结果)。
这就是我监听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 库:jquery.specialevents.hammer.js;与旧的 jquery.hammer.js ;现在似乎它正在响应所有事件并且我得到了我应该得到的所有属性。我仍然想知道为什么我尝试使用的那个不工作?
编辑:我找到了问题的根本原因,我的代码依赖于一些库,我正在使用 Yepnope 脚本加载器异步加载这些库,所以在某个地方而不是加载所有库(包括hammer.js 的jquery 插件),其中一些丢失了:) 我已经解决了这个问题,现在事件具有它们应该具有的属性。
【问题讨论】:
-
我得到了
event.type的记录值,但event.direction未定义 -
这正是我得到的......这就是我在这里问的原因:)
-
对我来说这意味着您的代码工作正常,事件对象只是没有方向属性。
-
在使用
.on之前,您是否尝试过将.hammer()添加到您的方法链中?如$(selector).hammer().on(... -
我正在使用 jQuery 插件,这就是我使用
.on()的原因,但是是的,我也尝试了 vanilla js 的方式来...
标签: javascript jquery hammer.js