我有一个使用 twitter bootstrap 和 Knockoutjs 的 ASP.Net MVC4 网站。要求之一是当用户在某些选项之间切换时刷新视图模型。为此,我设置了以下单选按钮
<div id = "myradio" class="btn-group" data-toggle="buttons-radio">
<button value="1" type="button" class="btn btn-primary active" data-bind="click: refresh">1</button>
<button value="2" type="button" class="btn btn-primary" data-bind="click: refresh">2</button>
<button value="3" type="button" class="btn btn-primary" data-bind="click: refresh">3</button>
</div>
我的 Knockoutjs 视图模型是
function ViewModel() {
var self = this;
//this function is called when the radio button is clicked
self.refresh = function(){
alert($('#myradio > button.active').val());
};
}
我遇到的问题是单击事件触发得太快并给了我单选按钮的先前值而不是当前值。为了演示这个问题,我设置了一个 jsfiddle
有什么方法可以让我获得当前值吗?knockoutjs 是否允许将事件传递到“刷新”函数中?只要我可以检测到在运行刷新功能时选择了哪个单选选项,我愿意接受任何想法。