KnockoutJS - 在呈现嵌套的observableArray UI之后,UI不会触发onchange事件

时间:2013-03-29 10:50:24

标签: knockout.js

我目前正确运行,其中下拉列表选择更改将显示一些文本,同时隐藏另一段文本。

更改下拉列表时触发的javascript:

window.DropdownValueChange = function(event) {
var jqueryValue = $(event);
jqueryValue.closest('td').find('p').hide();

var className = '.' + event.options[event.selectedIndex].value + '-class';
jqueryValue.closest('td').find(className).show();
}

HTML对象已更改:

<p class="male-class">I am a male</p>
<p class="female-class">I am a female</p>

但是,最初呈现HTML时并非如此。为什么onchange函数没有在UI的负载上正确触发?

http://jsfiddle.net/djcanseco/duL72/49/

1 个答案:

答案 0 :(得分:0)

onchange未在页面加载时触发。这可以通过向<p>标记添加可视化数据绑定来解决:

 <p class="male-class" data-bind="visible: gender == 'male'">
    I am a male
 </p>
 <p class="female-class" data-bind="visible: gender == 'female'">
    I am a female
 </p>

更新了fiddle