如何将当前元素传递给 Knockout.js 绑定中的 Javascript 函数
How can I pass the current element to a Javascript function in a Knockout.js binding?
所以我正在尝试使用 Knockout 向元素添加一个类.js具体取决于是否选中了子复选框。为此,我尝试将this
作为参数传递给我的函数。目前,我的删节 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;
}
然而,如果我console.log
elem
我得到的只是全局窗口对象。
使用jQuery来完全解决这个问题是不可行的,因为我正在从事的项目已经几乎只使用KNOCKOUT。有什么想法吗?
您应该能够通过传递特殊的绑定上下文变量$element来实现此目的。这是这里讨论的最后一个变量。
$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>
相关文章:
- react.js中的密钥绑定
- 如何销毁/删除/取消绑定SnapSVG.js
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 淘汰赛.JS'启用'长度绑定条件不起作用
- Backbone.js将模型绑定到视图时出错
- 使用knockout.js将数组绑定到视图模型
- 如何使用Jasmine测试Knockout.js点击绑定
- 在offline.js中绑定事件
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- 基本D3.js:如何将具有其他属性的数据绑定到元素
- 是否可以为React'打开React.js自动绑定;s类模型
- 是否可以使用Sinon.JS检查函数参数绑定是否正确
- knockout.js中的绑定多下拉列表
- 一种将Apache Thrift JS绑定与Backbone.JS一起使用的方法
- 为SEO的数据绑定JS预加载数据
- C3 中的双向数据绑定.js AngularJS 中的双向数据绑定
- 用于绑定 JS 对象以进行回调的解决方案
- 如何解绑定JS bundle文件
- 根据鼠标位置绑定js事件:性能杀手与否