多事件绑定快捷方式

Naz*_*gol 1 javascript data-binding javascript-events knockout.js

将当同一元素绑定到knockout中的多个动作时,我目前正在做的是:

data-bind="event: { click: doAction,
                    touchend : doAction}"
Run Code Online (Sandbox Code Playgroud)

我的问题是: 绑定到操作时是否可以使用某种快捷符号?

我希望有类似的东西:

data-bind="event: {click, touchend : doAction}"
Run Code Online (Sandbox Code Playgroud)

RP *_*yer 5

没有内置的快捷方式可以执行此操作,但使用自定义绑定可以非常轻松地使您data-bind更清洁.

您可以采取几种方法.一个特定于click和touchend的解决方案是:

ko.bindingHandlers.clickAndTouch = {
    init: function(element, valueAccessor, allBindingsAccessor, data) {
         var action = valueAccessor(),
             newValueAccessor = function() {
                 return {
                     click: action,
                     touchend: action
                 }                     
             };

         ko.bindingHandlers.event.init.call(this, element, newValueAccessor, allBindingsAccessor, data);      
    }        
};
Run Code Online (Sandbox Code Playgroud)

然后,你会绑定它,如:

data-bind="clickAndTouch: doAction"