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>

ご覧のとおり、 andが true または false の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 に答える