Javascript привязать «это» к событию - PullRequest
0 голосов
/ 27 декабря 2011

Ниже приведена ошибка, которую я получаю от привязки «this» к событию click в javascript. Формат js - Jaml / Mooml и может быть незнаком для некоторых, но я уверяю вас, синтаксис правильный. Я связывал «это» со многими событиями одним и тем же способом, и я впервые вижу эту ошибку, поэтому я надеюсь, что некоторые эксперты по mootools, jaml или javascript смогут найти решение из ошибки и кода ниже.

Uncaught TypeError: Object [object Object] has no method 'get'
Mooml.engine.tags.div.Mooml.engine.tags.div.events.click:relay(a)
bubbleUpmootools-core-1.4.1.js:3948
delegation.addEvent.delegatormootools-core-1.4.1.js:4078
defn

вот этот джамл ...

    'main': new Mooml.Template(null, function(data) {
        div({'class': 'lists container'},
            div({
                'class': 'sources',
                'events': {
                    'click:relay(a)': function(event) {
                        event.preventDefault();

                        new Resource({
                            'url': this.get('href'),
                            'method': 'FRIENDS',
                            'query' : {
                                'source': this.dataset.source
                            },

                            'onSuccess': function(response) {
                                console.log(response);
                                //this.renderTemplate('friends', response.mv, this);

                            }.bind(this),

                            'onFailure': this.onFailure

                        }).send();

                    }.bind(this)
                }

1 Ответ

4 голосов
/ 27 декабря 2011

Добавить var self = this;перед вашим кодом и затем используйте self вместо this в функциях обратного вызова.

Также взгляните на http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/ и http://javascriptweblog.wordpress.com/2010/08/30/understanding-javascripts-this/, чтобы узнать больше о том, как this работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...