Jquery 脱模检查装订
因此,我尝试使用自定义的淘汰复选框绑定来触发表单中某些div的可见性。我很难弄明白它为什么不能正常工作。我已经设置了初始值,但是它不会重新更新。我的问题是我似乎无法正确绑定复选框 我有一把小提琴来帮助这件事更有意义。加载时,它会设置正确的值,但随后的单击不会执行任何操作 我被难住了,我看了太久了Jquery 脱模检查装订,jquery,checkbox,knockout.js,custom-binding,Jquery,Checkbox,Knockout.js,Custom Binding,因此,我尝试使用自定义的淘汰复选框绑定来触发表单中某些div的可见性。我很难弄明白它为什么不能正常工作。我已经设置了初始值,但是它不会重新更新。我的问题是我似乎无法正确绑定复选框 我有一把小提琴来帮助这件事更有意义。加载时,它会设置正确的值,但随后的单击不会执行任何操作 我被难住了,我看了太久了 var data = true; ko.bindingHandlers.aipchecked = { update: function(element, valueAccessor) {
var data = true;
ko.bindingHandlers.aipchecked = {
update: function(element, valueAccessor) {
var options = valueAccessor();
alert(options.value());
if (options.value()) {
$(options.checked).slideDown('fast', function () { });
$(options.unchecked).slideUp('fast', function () { });
} else {
$(options.checked).slideUp('fast', function () { });
$(options.unchecked).slideDown('fast', function () { });
}
options.value(options.value())
//ko.bindingHandlers.checked.update(element, options.value);
}
};
var viewModel = {
control:[
{
checked: '#one',
unchecked: '',
value: ko.observable(true)
}
]
};
viewModel.control[0].value(data);
ko.applyBindings(viewModel);
HTML
<div data-bind="foreach: control">
<input type="checkbox" data-bind="aipchecked:{value: value,checked:checked,unchecked:unchecked}" />
<label data-bind="text: value"></label>
</div>
<div id="one">testing</div>
测试
V/R,
杰弗里下面是代码中的两件事-
<div data-bind="foreach: control">
<input type="checkbox" data-bind="checked:value,aipchecked:{value: value,checked:checked,unchecked:unchecked}" />
<label data-bind="text: value"></label>
</div>
<div id="one">testing</div>
类似这样的话:谢谢罗伯特,这让我想到了一些我认为有效的方法。我不知道确切的原因,但它似乎有效。您在最初链接的小提琴中遇到的问题是使用
值
绑定,而不是选中
。。。我很高兴能提供一些帮助:)哇,谢谢Origineil和Robert。你的回答肯定解决了我原来的问题。罗伯特也谢谢你的帖子也很有帮助。
var data = true;
ko.bindingHandlers.aipchecked = {
update: function(element, valueAccessor) {
var options = valueAccessor();
alert(options.value());
if (options.value()) {
$(options.checked).slideDown('fast', function () { });
$(options.unchecked).slideUp('fast', function () { });
} else {
$(options.checked).slideUp('fast', function () { });
$(options.unchecked).slideDown('fast', function () { });
}
//ko.bindingHandlers.checked.update(element, options.value);
}
};
var viewModel = {
control:[
{
checked: '#one',
unchecked: '',
value: ko.observable(true)
}
]
};
viewModel.control[0].value(data);
ko.applyBindings(viewModel);