在Firefox附加组件中创建a plain old ActionButton
时,似乎无法在创建后覆盖onClick
属性。无论如何,这个
var handleClick = function() {
tabs.open('https://www.mozilla.org/');
};
var button = new ActionButton({
id: 'my-link',
label: 'label me',
icon: {
'16': './icon-16.png',
'32': './icon-32.png',
'64': './icon-64.png'
},
onClick: handleClick
});
button.onClick = function() {
tabs.open('https://www.github.com/');
};
打开一个包含mozilla.org
的标签,而不是github.com
。
如何在按钮创建后调整onClick
?
答案 0 :(得分:1)
button.on('click', handleClick);
虽然这会添加另一个点击处理程序,而不是替换原始处理程序。挂起对处理程序的引用(例如handleClick
)并使用button.removeListener(handleClick)
删除旧的处理程序。
答案 1 :(得分:0)
最容易的事情可能不是替换处理程序,而是替换它的数据:
var url = 'https://www.mozilla.org/';
var handleClick = function() {
tabs.open(url);
};
// ...
url = 'https://www.github.com/';