JSFiddle - React, Tailwind, and code Playground
by hejdav
HTML
<div id="foo">
<a data-bind="clickArray: [bar, baz]">Click</a>
</div>
JavaScript
ko.bindingHandlers.clickArray = {
init: function (element, valueAccessor) {
var handlers = valueAccessor();
var validate = function () {
for (var i = 0; i < handlers.length; i++) {
if (typeof handlers[i] !== 'function') {
return false;
}
}
return true;
};
if (handlers === 'undefined' || handlers.constructor !== Array || !validate()) {
throw new Error('KO error: clickArray binding expects an array of callbacks.');
}
ko.applyBindingsToNode(element, {
click: function () {
for (var i = 0; i < handlers.length; i++) {
handlers[i].apply(this, arguments);
}
},
});
},
};
var viewModel = {
bar: function () {
alert('One.');
},
baz: function () {
alert('Two.');
}
};
ko.applyBindings(viewModel, document.getElementById('foo'));