2013-10-09 9 views
0

Когда я подписываюсь на наблюдаемую названную «степень», я хочу использовать event.target в обратном вызове, чтобы получить элемент DOM, который вызвал событие изменения. Это работает в Chrome, но в Firefox я получаю «событие не определено»Событие Knockout.js не определено в подписчике Firefox

self.degree.subscribe(function(degree){ 
    console.log(event.target); 
}) 

ответ

2

subscribe API не проходит event обратного вызова. В некоторых браузерах (например, Firefox) event не работает на window и доступен только в качестве аргумента обработчику событий.

В зависимости от того, что вы пытаетесь сделать, вы можете сделать:

<input data-bind="event: { change: myHandler }" /> 

Затем определить обработчик:

myHandler: function(data, event) { 
    //do something 
} 

Однако доступ к DOM элементов в модели представления, как правило, не хороший рисунок в нокаут. Custom bindings - это хороший способ установить связь между изменениями модели представления и вашими элементами DOM.

Смежные вопросы