将焦点处理程序透明地绑定到Knockout.js添加的新文本输入



我正在使用Knockout.js构建我的大部分UI,我正在寻找一种整洁的方式来选择任何输入[type=text]中的文本。过去我做过这样的事情:

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

但在Knockout范式下,新的输入一直在创建和删除,以响应我对视图模型的更改。我不想做太多的过程性工作来将处理程序重新绑定到新元素,我不想在模板中的每个输入实例上添加点击绑定,而且由于性能和其他缺点,我真的不想使用jQuery的live来观看整个文档。

这些输入可以出现在整个模板层次结构的所有级别。有没有一种干净的方法可以挂接Knockout为响应我的视图模型更改而构建的任何新DOM结构,并透明地连接子输入?

您可以编写自己的自定义活页夹来完成这项工作,请参阅有关如何完成这项任务的文档。您可以扩展value:绑定并自己添加焦点部分,它应该可以做到这一点。如果需要,您需要将所有当前值绑定替换为自定义值绑定。

最新更新