вы можете опубликовать больше? в основном - скелет для класса, а также функция, в которой вы вызываете новый экземпляр BasePickList
. Источник BasePickList не помешает увидеть, как событие запускается.
Теперь вам не нужно заключать метод класса в .bind(this)
, он делает это автоматически. Что касается событий, зависит от того, что их вызывает, если это поле ввода, то оно должно передавать исходное событие, которое вы можете захватить через handleComponentFocus: function(e) {
, где e будет объектом события.
это может быть отстранением от того, что вы пытаетесь сделать, но это может дать вам некоторые идеи
http://www.jsfiddle.net/dimitar/KdhvG/
проверяет вывод консоли, когда вы сосредотачиваетесь на поле - он передает управление методу handleComponentFocus
с объектом события (в комплекте с event.target, который указывает на флажок), а также с областью действия экземпляра класса.
<input type="checkbox" id="foo" />
и
var banana = new Class({
Implements: [Events, Options],
initialize: function(options) {
this.setOptions(options);
this.element = document.id(this.options.element);
this.element.addEvents({
focus: function(e) {
this.fireEvent("focus", e);
}.bind(this)
});
}
});
var foo = new Class({
handleComponentFocus: function(e) {
console.log(e);
},
initialize: function() {
this.picklist = new banana({
element: "foo",
onFocus: this.handleComponentFocus
});
}
});
new foo();