如何将当前元素传递给 Knockout.js 绑定中的 Javascript 函数?

2024-06-19

因此,我尝试根据是否选中子复选框,使用 Knockout.js 将类添加到元素。为此,我试图通过this作为我的函数的参数。目前,我的精简 DOM 结构如下:

<tr data-bind="css: { selected: isRowChecked(this) }">
    <td><label><input type="checkbox"></label></td>
</tr>

An my isRowChecked功能是这样的(我使用 jQuery 来定位输入):

function isRowChecked(elem) {
    var checkbox = $(elem).find('input[type="checkbox"]');
    return checkbox.checked;
}

然而,如果我console.log elem我得到的只是全局窗口对象。

使用 jQuery 来完全解决这个问题是不可行的,因为我正在从事的项目已经几乎完全使用了淘汰赛。有任何想法吗?


您应该能够通过传递特殊的绑定上下文变量 $element 来完成此操作。这是最后一个变量在这里讨论 http://knockoutjs.com/documentation/binding-context.html.

$element

这是元素 DOM 对象(对于虚拟元素,它将是 当前绑定的注释 DOM 对象)。如果 绑定需要访问当前元素的属性。例子:

<div id="item1" data-bind="text: $element.id"></div>

在你的情况下,看起来像这样:

<tr data-bind="css: { selected: isRowChecked($element) }">
    <td><label><input type="checkbox"></label></td>
</tr>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将当前元素传递给 Knockout.js 绑定中的 Javascript 函数? 的相关文章

随机推荐