Как заменить функцию create с MooTools 1.2 на 1.3? - PullRequest
1 голос
/ 18 марта 2011

Привет, у меня есть этот фрагмент кода, который мне нужен для работы с MooTools 1.3:

this.fn = function (e, cal) {
    var e = new Event(e);
    var el = e.target;
    var stop = false;

    while (el != document.body && el.nodeType == 1) {
        if (el == this.calendar) { stop = true; }
        this.calendars.each(function (kal) {
            if (kal.button == el || kal.els.contains(el)) { stop = true; }
        });

        if (stop) {
            e.stop();
            return false;
        }
        else { el = el.parentNode; }
    }
    this.toggle(cal);
}.create({
             'arguments': cal, 
             'bind': this, 
             'event': true 
        }); <-- THIS CREATE METHOD DOES NOT WORK

Может ли кто-нибудь помочь мне с этим?

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

После того, как функция создания устарела, вам необходимо «вручную» воссоздать использование.В этом случае вы создаете функцию, которая будет прослушивателем событий, и привязываете ее позже в коде (это календарь Аэрона Глемана).

Итак, вам нужно поместить эту функцию в addEvent youнайдите прямо под ним, вот так.

document.addEvent('mousedown', function(e, cal) {
[...]
}.bind(this));

Кроме того, в начале функции, которую вы сейчас редактируете (функция переключения), есть вызов removeEvent, который больше не будет работать, так как эта функция больше не имеетимя, заменить его на удаление всех событий на mousedown, работал для меня.

document.removeEvents('mousedown'); 
1 голос
/ 18 марта 2011

Как я уже говорил в списке рассылки пользователей mootools, я не знаю о "идеальном" способе, но в то же время вы всегда можете (если вы не хотите использовать версию 1.2 для Compat) вдохновить себяреализация функции для 1.2 compat:

https://github.com/mootools/mootools-core/blob/025adc07dc7e9851f30b3911961d43d525d83847/Source/Types/Function.js#L74

Я должен признать, что документ для 1.3 только упомянуть, что этот метод устарел.

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