当我订阅一个名为“degree”的observable时,我想在回调中使用event.target来获取触发change事件的DOM元素。这适用于Chrome,但在Firefox中我得到“事件未定义”
self.degree.subscribe(function(degree){
console.log(event.target);
})
答案 0 :(得分:2)
subscribe
API未将event
传递给回调。在某些浏览器(如Firefox)中,event
不在window
上,只能作为事件处理程序的参数访问。
根据您的目的,您可以这样做:
<input data-bind="event: { change: myHandler }" />
然后,定义一个处理程序:
myHandler: function(data, event) {
//do something
}
但是,在Knockout中访问视图模型中的DOM元素通常不是一个好的模式。 Custom bindings是在视图模型更改和DOM元素之间建立连接的好方法。