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