目标
获取触发函数的元素。
问题
查看我的代码:
<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>
如您所见,当 if
和 ifnot
为真或假时,我触发了 existsAtSummary()
函数。
但是这些按钮在 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。
最佳答案
我想你要找的是 $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());
关于javascript - 获取数据绑定(bind)的元素(使用 KnockoutJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17364586/