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

前端之家收集整理的这篇文章主要介绍了如何将当前元素传递给Knockout.js绑定中的Javascript函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我试图根据是否选中子复选框,使用Knockout.js为元素添加一个类.为此,我试图将此作为参数传递给我的函数.目前,我的删节DOM结构如下:
<tr data-bind="css: { selected: isRowChecked(this) }">
    <td><label><input type="checkBox"></label></td>
</tr>

我的isRowChecked函数是这个(我使用jQuery来定位输入):

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

然而,如果我控制台.log,我得到的就是全局窗口对象.

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

解决方法

您应该能够通过传递特殊绑定上下文变量$element来实现此目的.这是最后一个变量 discussed here.

$element

This is the element DOM object (for virtual elements,it will be the
comment DOM object) of the current binding. This can be useful if a
binding needs to access an attribute of the current element. Example:

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

在您的情况下,这将是这样的:

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

猜你在找的JavaScript相关文章