Knockout更改了click事件

时间:2013-05-18 14:43:42

标签: javascript data-binding knockout.js click

我正在尝试找到一种方法来更改所有元素上的click事件。我想做类似的事情,但我认为KO如何绑定它实际附加到元素的click事件,因此更改函数没有任何效果。

viewModel.clickEvent = function(item){
   logic
}

viewModel.clickEvent = newFunction;

<div data-bind="click: clickeEvent">MyButton</div>

我认为我需要使用代表,但很难搞清楚如何做到这一点。任何人都可以发布一个如何用淘汰赛做这个的基本例子吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确的话。您可以创建一个假的事件处理程序,您可以修改它而不修改绑定到视图的实际事件处理程序。

var viewModel = {
    clickEvent : function(item){
        if(this.changableClickEvent)
            this.changableClickEvent(item);
    },
    changableClickEvent : null
}

viewModel.changableClickEvent = function(){
    // logic
    alert('logic');
}

ko.applyBindings(viewModel);

<强> See fiddle