7

目标

获取触发函数的元素。

问题

查看我的代码:

    <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()功能。ififnot

但是这些按钮在 foreach 内部,我需要让它们的元素使用,我不知道如何。

我的 JS:

function ProductLayoutViewModel() {
    var self = this;

    self.existsAtList = function () {
        return true;
    };
}

ko.applyBindings(new ProductLayoutViewModel());

在 JSFiddle 上查看我的代码。

我的想法

我在想这个:

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

但正如我评论的那样,控制台返回“未定义”。

有任何想法吗?

细节

如有必要,我可以使用 jQuery

4

1 回答 1

3

我认为您正在寻找的是$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());

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

于 2013-06-28T12:22:44.547 回答