Obtener elemento de data binding (con KnockoutJS)

La meta

Obtener el elemento que desencadenó una function.

El problema

Ver mi código:

<span data-bind="ifnot: ProductLayout.existsAtSummary()"> <button class="btn btn-success btn-small add" title="Adicionar à list 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 list de comparação"> <i class="icon-remove"></i> </button> </span> 

Como puede ver, estoy activando la function existsAtSummary() cuando if y ifnot es verdadero o falso.

Pero estos botones están dentro de un foreach y necesito que sus elementos funcionen y no sé cómo.

Mi JS:

 function ProductLayoutViewModel() { var self = this; self.existsAtList = function () { return true; }; } ko.applyBindings(new ProductLayoutViewModel()); 

Se mi código aquí, en JSFiddle .

Mi idea

Estaba pensando en esto:

 self.existsAtList = function (element) { console.log(element); // returns me 'undefined' return true; }; 

Pero como he comentado, la console me devuelve "indefinido".

¿Algunas ideas?

Detalles

Si es necesario, puedo usar jQuery .

Creo que lo que estás buscando es $element :

 <span data-bind="ifnot: existsAtList($element)"> <button class="btn btn-success btn-small add" title="Adicionar à list 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 list de comparação"> <i class="icon-minus"></i> </button> </span> 

Y:

 function ProductLayoutViewModel() { var self = this; self.existsAtList = function (element) { console.log(element); return true; }; } ko.applyBindings(new ProductLayoutViewModel()); 

Ver http://jsfiddle.net/rSD7q/1/