2

私は Knockout.js を使用してほとんどの UI を構築しており、入力 [type=text] でテキストを選択する適切な方法を探しています。過去に私は次のようなことをしました:

$('input[type=text]').click(function() { $(this).select(); });

しかし、Knockout パラダイムの下では、ビュー モデルの変更に応じて、常に新しい入力が作成および削除されます。ハンドラーを新しい要素に再バインドするためにあまりにも多くの手順を実行する必要はありません。テンプレート内のすべての入力インスタンスにクリック バインディングを追加したくありません。実際には使用したくありません。 jQuery のライブは、パフォーマンスやその他の欠点により、ドキュメント全体を監視します。

これらの入力は、テンプレート階層全体のすべてのレベルで表示できます。ビュー モデルの変更に応じて Knockout によって構築された新しい DOM 構造にフックし、子入力を透過的に接続するクリーンな方法はありますか?

4

1 に答える 1

0

これを行う独自のカスタムバインダーを作成できます。これを行う方法については、ドキュメントをご覧ください。バインディングを拡張しvalue:てフォーカス部分を自分で追加できます。それでうまくいくはずです。必要に応じて、現在のすべての値バインディングをカスタム バインディングに置き換える必要があります。

于 2012-07-13T07:27:16.040 に答える