0

jQuery 代码看起来像这样并且工作正常(可能看起来有点排序,所以请告诉我,我也会更改它):jsFiddle

jQuery:

$('.inputs').on('keyup',function(){
    $(this).parent().not(this).find('.inputs').val($(this).val());
}
);

HTML:

<div>
    <input type="text" class="inputs" value="hello">
    <input type="text" class="inputs" value="John">
</div>

如何为 knockout.js 重写此代码?

谢谢你。

4

2 回答 2

1

只需将其绑定到同一个可观察对象:

HTML

<div>
    <input type="text" class="inputs" id="first" data-bind="value:foobar,valueUpdate:'keyup'">
    <input type="text" class="inputs" id="second" data-bind="value:foobar,valueUpdate:'keyup'">
</div>

视图模型

function AppViewModel() {
    this.foobar = ko.observable('hello');
}
ko.applyBindings(new AppViewModel());

我使用valueUpdate绑定实时更新输入而不是模糊(另见:https ://stackoverflow.com/a/4391419/664108 )

于 2013-02-04T08:36:17.043 回答
1

看看下面的代码片段,它适用于 ko。

var value = "Hello John";
var viewModel = {
  Name: ko.observable(value)
};
ko.applyBindings(viewModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/2.0.0/knockout-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <input type="text" data-bind="value:Name" class="inputs" id="first">
  <input type="text" data-bind="value:Name" class="inputs" id="second">
</div>
<span data-bind="text: Name"> </span>

希望,你会用更多的数据来做到这一点。在这种情况下,请查看此示例,它将让您了解如何支持更多数据。

更多常见问题请访问jqfaq.com

于 2013-02-04T08:37:23.573 回答