Knockoutjs - множественные привязки при событии click Я хотел бы знать, можно ли создать несколько привязок для события в knockout.js Пример: <span data-bind="click: function1 function2, attr: {}"></span> Ответ 1 Попробуйте использовать <span data-bind="click: function() { function1(); function2() }"></span> Ответ 2 EDIT: Я случайно использовал MooTools typeOf(), не задумываясь. Фиксированный. Вот что я придумал. Я признаю, что это слишком много для большинства ситуаций, но синтаксис немного чист на стороне шаблона: Просмотр модели: var ViewModel = new function() { this.call = function(functions,args) { if (!(functions instanceof Array)) functions = [functions]; if (!(args instanceof Array)) args = [args]; return function() { for (var i = 0, l = functions.length; i < l; i++) { functions[i].apply(this,args); } } } this.testValue=ko.observable('Click me!'); this.click1 = function(foo) { this.testValue('click1 ' + foo); alert(1); } this.click2 = function(foo) { this.testValue('click2 ' + foo); alert(2); } } и шаблон <span data-bind="click:call([click1,click2],['Test value'])">Test span</span> Ответ 3 Я пробовал это в своем коде и, похоже, работает: <button data-bind="click: viewMode.bind($data, 'view'), click: itemUpdate">
Ответ 1 Попробуйте использовать <span data-bind="click: function() { function1(); function2() }"></span>
Ответ 2 EDIT: Я случайно использовал MooTools typeOf(), не задумываясь. Фиксированный. Вот что я придумал. Я признаю, что это слишком много для большинства ситуаций, но синтаксис немного чист на стороне шаблона: Просмотр модели: var ViewModel = new function() { this.call = function(functions,args) { if (!(functions instanceof Array)) functions = [functions]; if (!(args instanceof Array)) args = [args]; return function() { for (var i = 0, l = functions.length; i < l; i++) { functions[i].apply(this,args); } } } this.testValue=ko.observable('Click me!'); this.click1 = function(foo) { this.testValue('click1 ' + foo); alert(1); } this.click2 = function(foo) { this.testValue('click2 ' + foo); alert(2); } } и шаблон <span data-bind="click:call([click1,click2],['Test value'])">Test span</span>
Ответ 3 Я пробовал это в своем коде и, похоже, работает: <button data-bind="click: viewMode.bind($data, 'view'), click: itemUpdate">