2011-02-01 57 views
1

這是我的問題:我正在尋找一種方法來處理Mootools中的「不匿名」功能。 無法找到解決方法,而且我找不到關於它的文檔。避免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/onfocus此事件調用現有功能(比如說你好)?我知道我可以在匿名內部調用我現有的函數,但是有沒有更好的/合適的方法來完成這個調用? 我被困在這個問題上幾天了,也許它很簡單,但我根本無法弄清楚。

謝謝。編輯: 我怎麼能錯過?謝謝你們的幫助,非常棒!

回答

0

功能是在Javascript中的一等公民,所以你可以這樣引用它們:

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

因爲函數是一個變量,你可以使用它,就像使用一個變量,在這情況下,哈希值

也是我應該指出的是,這兩種功能將具有相同的名稱:

function sayHello(){} 

and 

var sayHello = function(){} 

他們都做了一個名爲「sayHello的」功能(與你不約,現在照顧細微的差別)

0

到您的函數的引用簡單地直接傳遞,就好像它是任何其他變量:

var myInput = new Element('input', { 
    type: 'text', 
    value: 'hello world', 
    events: {blur: sayHello} 
});