代理功能不起作用,但正常功能正常
我能做些什么才能让它发挥作用
这可能是范围问题,但如何在此背景下使用“应用”或“呼叫”?
delegateEvents: function(){
for (var key in this.events) {
var methodName = this.events[key];
var method = this.proxy(this[methodName]);
var match = key.match(this.eventSplitter);
var eventName = match[1], selector = match[2];
if (selector === '') {
this.el.bind(eventName, method);
} else {
eventName == "click" && ( eventName = "tap click");
console.log("selector",selector);
console.log("eventName",eventName);
var eel = $$(selector, $(this.el));
Hammer(eel).on(eventName, method);
}
}
}
});
和Hammer的一部分
Hammer.Instance.prototype = {
/**
* bind events to the instance
* @param {String} gesture
* @param {Function} handler
* @returns {Hammer.Instance}
*/
on: function onEvent(gesture, handler){
var gestures = gesture.split(' ');
for(var t=0; t<gestures.length; t++) {
this.element.addEventListener(gestures[t], handler, false);
}
return this;
},
代理功能
util = {
proxy: function(fn, context, args){
var argsArr = slice(arguments, 2); //curried args
return function(){
return fn.apply(context, argsArr.concat(slice(arguments)));
};
},
成为控制器的一部分
result.proxy = function(func){ return util.proxy(func, this); };
so, this.proxy == result.proxy and the context is already set to this
感谢有人知道这个
答案 0 :(得分:0)
问题是Minified library返回了Hammer库的选择器 无法使用。
嗯,这是我的第一个假设
实际上,我正在使用一种类型的选择器用于两个不同的函数,“$”版本,它返回Minified对象,但Hammer只需要节点,因此需要“$$”版本。 / p>