0
我使用panel.addButton({value:「XXX」,section:...,action:function(){*}})添加一個按鈕 一個面板,現在我想重載按鈕的動作,該怎麼做!如何覆蓋YUI3中面板按鈕的事件處理函數
我使用panel.addButton({value:「XXX」,section:...,action:function(){*}})添加一個按鈕 一個面板,現在我想重載按鈕的動作,該怎麼做!如何覆蓋YUI3中面板按鈕的事件處理函數
你不能「改變」action
函數本身。 action
是用於將某些事件的事件偵聽器添加到您創建的按鈕節點的快捷方式。你可以做的是刪除該事件監聽器並添加另一個監聽器。
由於action
只添加一個事件偵聽器,您可以通過刪除所有事件偵聽器來安全地刪除它。只需拿到getButton
的按鈕結點,撥打detachAll
並附加一個新的事件監聽器:
var panel = new Y.Panel({ /* panel config with some buttons */ });
// later on...
var button = panel.getButton(1);
button.detachAll();
button.on('click', newAction);