看到这个小提琴:http://jsfiddle.net/BxvVp/11/
我创建了一个视图模型,该模型具有用div
内容替换页面上的一些隐藏内容的功能。完成后,text
绑定似乎被处理,但click
绑定不是。
我做错了吗?
HTML:
<h4>Clicking the anchor created by clicking 'Summarize' should cause an alert, but doesn't.</h4>
<a href="#" data-bind="click: summarize">Summarize</a>
<div id="plot1"></div>
<div id="summary1" style="display:none;"> <a data-bind="text: 'anchor-text-replaced', click: function(data, event) { alert('anchor clicked!'); }" href="#">anchor-text</a>
</div>
<hr />
<h4>Clicking this anchor causes the alert as exptected.</h4>
<div id="plot2"></div>
<div id="summary2">
<a data-bind="text: 'anchor-text-replaced', click: function(data, event) { alert('anchor clicked!'); }" href="#">anchor-text</a>
</div>
的javascript:
var ViewModel = function () {
var self = this;
self.summarize = function () {
$("#plot1").html($("#summary1").html());
};
};
ko.applyBindings(new ViewModel());
答案 0 :(得分:5)
Knockout仅在您最初调用ko.applyBindings()
时应用绑定,并且 Knockout 随时替换包含绑定,foreach块,模板等的HTML。仅仅因为您插入了一些包含绑定的随机HTML ,并不意味着Knockout突然意识到这一事实。