【发布时间】:2013-04-16 17:09:36
【问题描述】:
我有一个 select 元素,我使用 Jquery Knockout 绑定 css 类。
我想直接从data-bind 属性访问当前元素实例,而不在ViewModel 中创建属性(因为我有许多共享相同功能的select 元素)
这可能吗?
<select id="select1" data-bind="css: { 'no-value-selected': $item.val() == '' }">
<option value="">[Select a value]</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
编辑 使用 ViewModel 来实现这一点(我想避免的)
function ViewModel() {
this.select1HasNoValueSelected = ko.computed(function () {
return $("#select1").val() == '';
}, this);
};
var viewModel = new ViewModel();
ko.applyBindings(viewModel);
<select id="select1" data-bind="css: { 'no-value-selected': select1HasNoValueSelected }">
【问题讨论】:
-
不是 100% 确定你在这里问的是什么,你能更好地解释一下你的场景吗? “访问当前元素实例”可以通过 DOM 轻松完成吗?
-
我在我的问题中添加了一个工作示例..希望它更清楚
-
这个其实挺难的,我会继续努力破解的。
-
是的..我知道:) 我做了一些研究,但没有找到任何东西。我使用纯 jquery 来实现这一点
标签: javascript jquery knockout.js