Rol*_*and 7 javascript jquery hammer.js
我正在开发这个小网站:网站 ; 我正在使用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));
};
Run Code Online (Sandbox Code Playgroud)
我称之为:
this.Drag(selector, delay, function(event) {
console.log(event.type, event.direction);
});
Run Code Online (Sandbox Code Playgroud)
有人能告诉我,我在那里做错了什么,或者我错过了什么?
编辑:我刚刚更换了jQuery库:jquery.specialevents.hammer.js ; 与旧的jquery.hammer.js ; 现在好像它正在响应所有事件,我得到了我应该拥有的所有属性.我仍然想知道为什么不是我努力工作的那个?
编辑:我发现了我的问题的根本原因,我的代码依赖于我正在使用Yepnope脚本加载器异步加载的一些库,所以在某个地方而不是加载所有库(包括hammer.js的jquery插件) ),其中一些丢失了:)我已经修复了这个问题,现在这些事件具有他们应该具有的属性.
我仍然想知道为什么不是我努力工作的那个?
了解之间的区别jquery.specialevent.hammer.js
,jquery.hammer.js
应该有助于理解问题.Damien,创造者jquery.specialevent.hammer.js
,解释了原因.
然而,Eight Media决定在jQuery中创建自己的命名空间来激活事件.
Run Code Online (Sandbox Code Playgroud)$("#element").hammer({ /* options */ }).on("tap", function(ev) { console.log(ev); });
所以最后他们没有使用默认的jQuery事件系统.这意味着我现有的使用jQuery移动事件的源代码必须进行更改.这就是我决定使用jQuery特殊事件API实现Hammer.JS的原因.
Run Code Online (Sandbox Code Playgroud)$("#element").on("tap", { /* options */ }, function(ev) { console.log(ev); });
我把jquery.specialevent.hammer.js放到我的Github上,你也可以在那里找到一个演示.也许Eight Media接受了我的拉动请求,它将成为Hammer.JS的一部分.
归档时间: |
|
查看次数: |
6550 次 |
最近记录: |