获取触发函数的元素。
请参阅我的代码:
<span data-bind="ifnot: ProductLayout.existsAtSummary()">
<button class="btn btn-success btn-small add"
title="Adicionar à lista de comparação">
<i class="icon-plus"></i>
</button>
</span>
<span data-bind="if: ProductLayout.existsAtSummary()">
<button class="btn btn-danger btn-small remove"
title="Remover da lista de comparação">
<i class="icon-remove"></i>
</button>
</span>
如您所见,我在existsAtSummary()
和if
为真或假时触发ifnot
功能。
但是这些按钮属于foreach,我需要让它们的元素一起工作,我不知道如何。
我的JS:
function ProductLayoutViewModel() {
var self = this;
self.existsAtList = function () {
return true;
};
}
ko.applyBindings(new ProductLayoutViewModel());
查看我的代码here, on JSFiddle。
我在想这个:
self.existsAtList = function (element) {
console.log(element); // returns me 'undefined'
return true;
};
但正如我所评论的那样,控制台让我“未定义”。
有什么想法吗?
如有必要,我可以使用jQuery 。
答案 0 :(得分:2)
我认为你要找的是$element
:
<span data-bind="ifnot: existsAtList($element)">
<button class="btn btn-success btn-small add"
title="Adicionar à lista de comparação">
<i class="icon-plus"></i>
</button>
</span>
<span data-bind="if: existsAtList($element)">
<button class="btn btn-success btn-small add"
title="Eliminar de lista de comparação">
<i class="icon-minus"></i>
</button>
</span>
和
function ProductLayoutViewModel() {
var self = this;
self.existsAtList = function (element) {
console.log(element);
return true;
};
}
ko.applyBindings(new ProductLayoutViewModel());