2011-03-03 59 views
1

我掛鉤事件處理起來是這樣的:ExtJS的:傳遞參數事件處理程序的

Ext.getCmp('MyButton').on('click', this.onClick, null, {info: "foo"}); 

而且處理程序是這樣的:

function onClick(event, target, options) { 
    alert(options); 
} 

我得到我的回調,但options是通過undefined。出了什麼問題?它看起來像我在做什麼the docs建議。

回答

2

你正在做什麼文檔說,但你解釋錯誤的文檔。您可以作爲第四個參數傳遞的選項字面值配置偵聽器(像delay,scope等設置)。您不能使用它將額外的參數傳遞給偵聽器函數。這就是createDelegate方法的用武之地。

var a = new Ext.Button({ text: 'Click!', renderTo: Ext.getBody() }); 

a.on('click', function(){ 
    alert('click after 2 seconds!'); 
    console.log(arguments); // will log the strings 'Hello' and 'World' 
}.createDelegate(a, ['Hello', 'World']), null, { delay: 2000 }); 
+0

所以當文檔說「你基本上只需要添加自定義變量的選擇對象」,並給出了設置「someProperty」,然後在回調閱讀它的例子......這只是小說? (我接受它可能!) – kdt 2011-03-03 23:13:05

+0

我剛剛檢查了http://dev.sencha.com/deploy/dev/docs/?class=Ext.util.Observable上的addListener文檔,找不到任何對您的參考指的是。你有鏈接嗎? – ChrisR 2011-03-03 23:30:58

+0

這是問題中的鏈接。當我仔細觀察它時,它指的是一箇舊版本的Ext,所以解決了這個問題。 – kdt 2011-03-03 23:36:39

相關問題