我有一个可观察到的绑定到隐藏 div 中的 textarea,如下所示:
<span title="sales comment" data-bind="attr: { id: 'sales-'+year() }" style="cursor :pointer;">
<img src="information.png" alt="Add comment" />
</span>
<div data-bind="attr: { id: 'sales-'+year()+'_content' }" style="display : none;">
<textarea data-bind="value: salesComment, valueUpdate: 'keydown'"> </textarea>
</div>
和视图模型
var FinancialYearViewModel = function(data, parent) {
var self = this;
self.year = ko.observable();
self.salesComment = ko.observable();
};
ko.applyBindings(new FinancialHistoryViewModel(data));
var data = {"year": "2012", "salesComment": "sales comment"}
隐藏的 div 用于填充 qtip 工具提示的内容,如下所示:
$(document).ready(function()
{
$("span[title]").each(function(i) {
content = $("#" + this.id + "_content").html();
$(this).qtip({ content: {
text: content
},
show: {
event: 'click'
},
hide: { event : 'unfocus'}
});
});
});
viewModel 绑定 ok 并且 qtip 根据需要将隐藏的 div 显示为其内容。但是,当 textarea 值更改时, viewModel 不会更新。
当我从 div 中删除内联 css 时,它确实有效,即:
<div data-bind="attr: { id: 'sales-'+year()+'_content' }">
<textarea data-bind="value: salesComment, valueUpdate: 'keydown'"> </textarea>
</div>
但我需要默认隐藏 div 的内容,因为它仅在用户查看 qtip 时使用。
有什么想法为什么这个 css 会阻止 observable 更新 viewModel?