0

假设我有简单的 html 标记:

<div>
    <input type="text"/>
</div>

当我单击 div 时,我想集中输入。我有什么方法可以做到这一点?

我在考虑几种可能性,但看起来不错:

  • 忘记淘汰赛并使用好的旧jQuery。但随后代码变成了意大利面条,UI 行为分布在许多地方。
  • 为输入创建自定义 bindingHandler 并将单击绑定添加到 div,单击更改某些模型属性,自定义绑定对其做出反应并引发焦点事件。但这对于如此简单的事情来说看起来太复杂了(至少在 jq 中这很容易)。

还有其他选择吗?

4

1 回答 1

1

Knockout 非常适合使用支持数据模型构建 UI。当您需要进行低级 DOM 操作(如您所描述的)时,这无济于事。事实上,在淘汰赛的介绍页面上,作者说:

每个人都喜欢 jQuery!它是我们过去不得不忍受的笨重、不一致的 DOM API 的出色替代品。jQuery 是一种极好的低级方式来操作网页中的元素和事件处理程序。我当然仍然使用 jQuery 进行低级 DOM 操作。KO解决了一个不同的问题。

(强调我的)

就我个人而言,我认为使用 jQuery 进行这种类型的操作很好。如果将事件处理程序和 MVVM 代码分解为单独的 JavaScript 文件,则可以避免编写意大利面条式代码。

于 2012-05-28T16:52:48.347 回答