在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

最佳答案

API Docs建议使用on,这是添加事件侦听器的常见模式。

button.on('click', handleClick);


尽管这会添加另一个点击处理程序,但不能替换原始处理程序。挂起对处理程序的引用(例如handleClick),然后使用button.removeListener(handleClick)删除旧的引用。

10-08 01:14