在淘汰赛中将相同元素绑定到多个操作时,我目前正在做的是:
data-bind="event: { click: doAction,
touchend : doAction}"
我的问题是:
绑定到动作时是否可以使用某种快捷符号?
我希望是这样的:
data-bind="event: {click, touchend : doAction}"
在淘汰赛中将相同元素绑定到多个操作时,我目前正在做的是:
data-bind="event: { click: doAction,
touchend : doAction}"
我的问题是:
绑定到动作时是否可以使用某种快捷符号?
我希望是这样的:
data-bind="event: {click, touchend : doAction}"
没有内置的快捷方式可以做到这一点,但是使用自定义绑定来让你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"
由于至少 Knockout 2.1.0(它仍然适用于 3.4.2),因此可以使用:
data-bind="event: {'click touchend': doAction}"