как заменить bindwithevent в mootools 1.3 - PullRequest
2 голосов
/ 31 октября 2010

Интересно, как заменить функцию bindWithEvent в Mootools 1.3, пример в документации очень простой:

Element.addEvent('click', function(e){
myFunction.bind(bind, [e]);});

Но что, если мне нужно передать параметр обработчику событий? Это путь в Mootools 1.2:

Element.addEvent('click', function(e, param) { e.stop(); alert(param) }.bindWithEvent(this,['text']);

Любая идея о том, как заменить это в Mootools 1.3.

Обновление: я нашел очень уродливое решение, но по крайней мере оно работает, пока я нахожу встроенное решение:

Element.addEvent('click', function(e){ e.stop(); this.bind.myFunc(this.param);}.bind({bind:this, param: 'text'}));

Ответы [ 2 ]

3 голосов
/ 04 ноября 2010
el.addEvent('click', function(event){
    myFunction(event, param1, param2); // can use .pass and bind this again
}.bind(this));

трудно объяснить, почему он устарел.

пример в контексте класса:

var foo = new Class({
    initialize: function(el) {
        document.id(el).addEvent('click', function(event){
            this.foo(event, "hello");
        }.bind(this));
    },
    foo: function(event, what) {
        console.log(event, this); // this is the class instance
        alert(what);
    }
});

new foo("foo");
2 голосов
/ 31 октября 2010

Вы должны прочитать обновление с 1.2 до 1.3 страницы: http://github.com/mootools/mootools-core/wiki/Update-from-1.2-to-1.3

Вот что я придумал: http://jsfiddle.net/MBx2D/2/

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