0

プロキシ機能は動作しませんが、通常の機能は問題ありません

機能させるにはどうすればよいですか

おそらくスコープの問題ですが、このコンテキストで「適用」または「呼び出し」をどのように使用すればよいですか?

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.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

誰かがこれを知っているならありがとう

4

1 に答える 1

0

問題は、縮小されたライブラリが Hammer ライブラリが動作しないセレクタを返すことでした。

まあ、それは私の最初の仮定でした

実際には、縮小オブジェクトを返す "$" バージョンという 2 つの異なる関数に対して 1 つのタイプのセレクターを使用していたのですが、Hammer にはノードが必要なだけなので、"$$" バージョンが必要です。

于 2013-08-06T13:34:23.340 に答える