Для каждой конфигурации кнопки добавьте один дополнительный параметр конфигурации, скажем actionUrl, следующим образом:
{
xtype: 'toolbar',
actionUrl : 'http://www.google.com',
title: 'Student Portal',
ui: 'light',
dock: 'top',
items: buttonsSpecTop,
defaults: { handler: tapHandler }
}
Теперь для функции tapHandler первым параметром является экземпляр кнопки. Таким образом, вы можете получить URL следующим образом:
function tapHandler(btn){
console.log(btn);
window.open(btn.actionUrl);
}
И вы не можете поместить вещи в javascript таким образом внутри массива:
defaults: [handler: tapHandler, handler: tap2Handler]
Для этого вы должны использовать объект, аналогичный первому:
defaults: { handler: tapHandler }
И вы не можете поместить несколько параметров с одним и тем же именем в один объект, только один " handler " будет идти туда. А для по умолчанию ко всем элементам будет применен только один обработчик. Поэтому, если вам нужны отдельные обработчики для отдельных кнопок, используйте обработчик обработчика для каждой кнопки.