1

在淘汰赛中将相同元素绑定到多个操作时,我目前正在做的是:

data-bind="event: { click: doAction,
                    touchend : doAction}"

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

我希望是这样的:

data-bind="event: {click, touchend : doAction}"
4

2 回答 2

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);      
    }        
};

然后,你会像这样绑定它:

data-bind="clickAndTouch: doAction"

于 2012-05-03T12:07:47.903 回答
1

由于至少 Knockout 2.1.0(它仍然适用于 3.4.2),因此可以使用:

data-bind="event: {'click touchend': doAction}"
于 2017-07-26T08:19:46.637 回答