javascript - 获取数据绑定(bind)的元素(使用 KnockoutJS)

标签 javascript jquery knockout.js

目标

获取触发函数的元素。

问题

查看我的代码:

    <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>

如您所见,当 ififnot 为真或假时,我触发了 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());

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

关于javascript - 获取数据绑定(bind)的元素(使用 KnockoutJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17364586/

相关文章:

javascript - afterRender 用于 html 绑定(bind)

javascript - 我可以检测浏览器的书签工具栏是否启用了 JavaScript 吗?

javascript - 高端 JavaScript 应用程序和事件

javascript - 获取特定 div 的子元素中输入字段的值

javascript - 如何在 chrome 中进行调试以获取 knockout 中可观察值的值?

knockout.js - 如何根据 foreach observablearray 属性过滤选择列表选项

javascript - Internet Explorer 空 div 链接

javascript - Material -UI FAB 悬停颜色

javascript - html2canvas 和 jsPDF,CSS 样式在 pdf 中呈现不正确

javascript - 为什么要添加多个类?