我有一个外部 div 绑定到具有 ProcessClick 函数的视图模型,而运行时的内部 div 绑定到不同的视图模型,但具有相同的单击函数名称。由于某种原因,只有外部模型的函数也会在内部 VM 的函数之前被调用。
标记:
<div id="max-outer">
<span data-bind="click: BindInner">Bind Inner</span>
<br/>
<br/>
<span data-bind="click: ProcessClick">Outer</span>
<div id="max-inner">
<span data-bind="click: ProcessClick">Inner</span>
<br/>
</div>
</div>
JS:
function InnderModel() {
self = this;
self.ProcessClick = function ()
{
alert("Inner clicked");
};
}
function OuterModel() {
self = this;
self.ProcessClick = function (){
alert("Outer clicked");
};
self.BindInner = function () {
ko.cleanNode(document.getElementById("max-inner"));
ko.applyBindings(new InnderModel(), document.getElementById("max-inner"));
};
}
ko.applyBindings(new OuterModel(), document.getElementById("max-outer"));
这是一个小提琴:http: //jsfiddle.net/mpavlov/H2ZnV/8/
一个想法是单击 Bind inner 和单击 Inner span 只会显示“Inner Clicked”警报,而不是两者。这可以以某种方式实现吗?