如何更改按钮的单击事件

时间:2014-07-03 12:34:57

标签: knockout.js logical-operators knockout-mvc

我正在尝试更改按钮的点击事件。有可能与否。我想检查按钮文本它是文本是“保存”然后保存事件调用否则如果文本是“更新”然后更新事件调用。

此处JSFIDDLE

查看

 <input type="button" data-bind="click: $root.save ,value: Save" />

视图模型

function AppViewModel() {
    var self = this;
    self.Save = ko.observable("Save");

    self.save = function () {
        self.Save("Update");  
    }

    self.update = function () {
        alert('click');
        //change button text here       
    }
}

ko.applyBindings(new AppViewModel());

2 个答案:

答案 0 :(得分:3)

您可以尝试对这两个操作使用单个函数:

<input type="button" data-bind="click: $root.doAction ,value: Save" />
self.doAction = function () {
  if (self.Save() == "Update") {
    self.Save("Save");
  } else if (self.Save() == "Save") {
    self.Save("Update");
  }
}

http://jsfiddle.net/norbiu/d4kkg/9/

答案 1 :(得分:0)

您可以执行以下操作:

data-bind="click: function(data, event) { $root.save(event.target.value) }"

然后检查save函数中的参数是否相等为“保存”或“更新”。