我有可观察到的结合一个textarea一个隐藏的div像这样内:可观察到的不更新时在一个隐藏的div
<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作为其cont根据需要。但是,当textarea值更改时,viewModel不会更新。
它的工作,当我删除div中内嵌CSS,即:
<div data-bind="attr: { id: 'sales-'+year()+'_content' }">
<textarea data-bind="value: salesComment, valueUpdate: 'keydown'"> </textarea>
</div>
但我需要为它的使用,只有当用户查看qtip隐藏默认div的内容。
任何想法为什么这个CSS是防止观察更新viewModel?
如果div未隐藏,它是否仍会更新? ?我怀疑更新不会发生,因为qtip更改不会触发适当的事件。 –