Javascript 如何向knockout.js中已经绑定了数据的元素添加额外的事件?

Javascript 如何向knockout.js中已经绑定了数据的元素添加额外的事件?,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我有一个像这样的日期控件 <input data-bind="value: formatDateTime(ko.unwrap(Started)), css: { validationElement: validateItem(Started, 'Started') }, event: { change: function(d, e) { if (Started != $(e)[0].target.value &amp;&amp; dateWheelShown ==

我有一个像这样的日期控件

<input data-bind="value: formatDateTime(ko.unwrap(Started)), css: { validationElement: validateItem(Started, 'Started') }, event: {
change: function(d, e) {
    if (Started != $(e)[0].target.value &amp;&amp; dateWheelShown == true) {
        $data.Started(dateToISO($(e)[0].target.value,'DD/MM/YYYY HH:mm'));
    }
}
}, id: 'Started' + '_' + Id()" data-onthemove_dateformat="DD/MM/YYYY HH:mm" class="Mobile_DateTimePick ui-input-text ui-body-c ui-corner-all ui-shadow-inset ui-mini" data-mini="true" name="Started" id="scoller1400844006695" readonly="">

对于某些日期控件,我需要在某些用户操作上添加其他事件。

如何向已绑定数据的元素注入额外的事件?

您可以使用
ko添加事件

ko.applyBindingsToNode(input, { 
                           event: {
                               keydown : function() {
                                   alert("onKeydown")
                               }
                           }
                       })
*

*-演示源:
Html

<input id="inputId" data-bind="event: {
   change: function(d, e) {
       alert('onChange');
   }
}"/>
<button data-bind="click: addkeypressEvent">Add evend</button>
var vm = {
    addkeypressEvent: function()
    {
        var input = document.getElementById("inputId");
        ko.applyBindingsToNode(input, { 
                                   event: {
                                       keydown : function() {
                                           alert("onKeydown")
                                       }
                                   }
                               })
   }
}
ko.applyBindings(vm)

你真的需要吗?没有解决方法吗?@GôTô我们更愿意避免使用黑客,我为我想要附加的附加事件定义了良好的事件处理程序,并且它们已经在整个系统中使用。你会考虑什么解决方法?这取决于你为什么需要这个。可能从一开始就声明事件,但是有一个初始的
if
子句,只在特定的条件下执行代码circumstances@GôTô那么您要说的是添加元素上的所有事件,然后将普通事件处理程序包装在函数()中{if(isonmouseovereventracive){normalOnMouseOverEventHandler();}}对于每种类型的事件?我想这可以作为一个解决办法。类似的,我不知道所有的背景,不知道你是否能做到。小心返回值