0

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

viewModel.clickEvent = function(item){
   logic
}

viewModel.clickEvent = newFunction;

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

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

4

1 回答 1

1

如果我理解正确。您可以创建一个假事件处理程序,您可以在不修改绑定到视图的实际事件处理程序的情况下对其进行修改。

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

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

ko.applyBindings(viewModel);

见小提琴

于 2013-05-18T16:11:40.947 回答