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>

希望、あなたはより多くのデータでこれを行うでしょう。その場合は、このサンプルを見て、より多くのデータをサポートする方法を確認してください。

その他の FAQ については、 jqfaq.comをご覧ください。

于 2013-02-04T08:37:23.573 に答える