单击冒泡按钮上的所有混乱

时间:2014-05-19 08:04:47

标签: knockout.js

http://jsfiddle.net/7kb7n/

    function StorewideSaleModel() {

    this.radioOff = ko.observable(""+1);

}

ko.applyBindings(new StorewideSaleModel());

所以,我在这里尝试做的是根据单选按钮启用/禁用文本框。我还为div分配了一个click事件,所以如果我点击该div中的任何其他位置,则会选中该按钮。一切正常。

但是,如果我单击单选按钮本身,它不会被检查,但UI的其余部分仍然会更新。如果检查该值,则单选按钮会(神奇地)返回旧值。它怎么能记住我不知道的旧价值。

所以我尝试了clickBubble:false,并且事件STILL冒泡到了封闭的div。我用警报来解决这个问题。

1 个答案:

答案 0 :(得分:2)

默认情况下,Knockout会阻止click事件采取任何默认操作。

因此,您需要将true从点击事件处理程序返回到allow the default click action

data-bind="click: function() { radioOff('2'); return true;}"

data-bind="click: function() {radioOff('1'); return true;} "

演示JSFiddle