Избегать анонимной функции в Mootools? - PullRequest
1 голос
/ 01 февраля 2011

Вот моя проблема: я ищу способ работы с «неанонимной» функцией в Mootools. Не могу найти способ решить это, и я не мог найти документ об этом.

Пример: var myInput = new Element('input', { type: 'text', value: 'hello world', events: {blur: function(){ .... } }; });

OR $$('td[title]').addEvents('dblclick':function(){...});

И простая функция function sayHello(){alert('hello')}

Что мне делать, если я хочу, чтобы событие onBlur / ondblClick вызывало существующую функцию (например, sayHello)? Я знаю, что мог бы вызвать свою существующую функцию внутри анонимной, но есть ли лучший / подходящий способ сделать этот вызов? Я застрял в этой проблеме на несколько дней, может быть, это довольно просто, но я просто не могу понять это.

Спасибо.

РЕДАКТИРОВАТЬ: Как я мог пропустить это ??? Спасибо ребята за помощь, отлично поработали!

Ответы [ 3 ]

3 голосов
/ 01 февраля 2011
$$('td[title]').addEvents({'dblclick':sayHello});

, поскольку функция является переменной, вы можете использовать ее так же, как и переменную, в данном случае в качестве значения хеша

также следует указать, что обе эти функцииимеют одно и то же имя:

function sayHello(){}

and

var sayHello = function(){}

они оба создают функцию 'sayHello' (с небольшими различиями, о которых вы сейчас не заботитесь)

0 голосов
/ 01 февраля 2011

Просто передайте ссылку на вашу функцию напрямую, как если бы это была любая другая переменная:

var myInput = new Element('input', {
    type: 'text',
    value: 'hello world',
    events: {blur: sayHello}
});
0 голосов
/ 01 февраля 2011

Функции являются гражданами первого класса в Javascript, поэтому вы можете ссылаться на них следующим образом:

$$('td[title]').addEvents('dblclick':sayHello);
...