我如何在data_bind =“checked”绑定中运行javascript函数

时间:2012-11-04 15:08:10

标签: javascript knockout.js

我有data_bind =“checked”绑定的radiobuttons。我需要调用自定义函数来在检查其中一个radiobutton时自定义ui。 HTML

        日常         每周         每月一次         
<div data-bind="visible: FrequencyType() == 1">
    Message 1
</div>
<div data-bind="visible: FrequencyType() == 2">
    Message 2
</div>
<div data-bind="visible: FrequencyType() == 3">
    //Before show html here I want to call js function
</div>

JS

    function AppViewModel() {
    this.FrequencyType = ko.observable("0");    
}

$(document).ready(function () {
    viewModel = new AppViewModel();

    // Activates knockout.js
    ko.applyBindings(viewModel);   
});

jsfiddler 怎么能用淘汰赛来做呢?

2 个答案:

答案 0 :(得分:1)

最简单的方法是在FrequencyType上创建手动订阅。

http://jsfiddle.net/jearles/TuBzb/1/

this.FrequencyType.subscribe(function(newValue) {
    if (newValue == 3) {
        alert('3 is clicked');
    }
});

答案 1 :(得分:1)

我不确定这是不是你的问题,但你提供的jsFiddle示例不起作用,因为无法找到链接的淘汰库。这是knockoutjs的CDN链接,我更新了你的小提琴here

http://cdnjs.cloudflare.com/ajax/libs/knockout/1.2.1/knockout-min.js

为了根据值运行javascript函数,可以按照文档here订阅ko.observable