0

看到这个小提琴: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());
4

1 回答 1

5

Knockout 仅在您最初调用时应用绑定,ko.applyBindings()并且任何时候Knockout替换包含绑定、foreach 块、模板等的 HTML。仅仅因为您插入了一些包含绑定的随机 HTML,并不意味着 Knockout 突然意识到这一事实。

于 2013-04-05T15:27:28.003 回答