【问题标题】:Hasfocus binding issues with FirefoxHasfocus 与 Firefox 的绑定问题
【发布时间】:2013-01-23 14:35:24
【问题描述】:

我正在开发一个应用程序,该应用程序利用可观察数组来呈现可编辑的用户 ID 信息表。该应用程序在 Chrome 中运行良好,但在 Firefox 中运行时遇到问题。就我而言,这两个浏览器是我目前唯一关心的浏览器。

我在淘汰赛中通过hasfocus 绑定使用“点击编辑”功能,它与Chrome 配合得很好。 Whenever the username is selected, it becomes editable, a save button presents itself, and upon clicking "Save" the info is posted as a JSON string. Firefox 在发布过程中似乎没有走得足够远,并且在移除焦点时它的行为很奇怪。

有相当多的代码,所以我准备了这个 Fiddle 来显示问题。 Chrome 运行良好,而 Firefox 则不行。

http://jsfiddle.net/stevehnh/GNssr/

非常感谢您的帮助!希望这是我缺少的一些小东西。

【问题讨论】:

  • 是的,这很奇怪。如果您单击而不编辑,它可以正常工作,但如果您更改它,文本框不会按预期消失。
  • 有趣的是,hasfocus 的淘汰文档中的示例 2 在 FF 中似乎存在完全相同的问题。也许您应该将其报告为错误?
  • 您的小提琴没有为我加载,但这里有一个错误已修复但尚未发布:github.com/SteveSanderson/knockout/issues/554。您可能想确认 2.1 与 2.2 中的行为。
  • 看起来下降到 2.1 解决了 Firefox 中的问题。坏消息是它似乎破坏了 Chrome 中的应用程序:P。虽然它不是世界末日。我可以等到修复程序实施到发布中。感谢您的帮助!

标签: knockout.js ko.observablearray clicktoedit


【解决方案1】:

在摆弄了一段时间后,我发现问题在于 Firefox 在我能够单击“保存”按钮之前从编辑字段中移除了焦点。为了解决这个问题,我使用了淘汰赛 throttle 扩展。

editing 绑定更新为 false 之前,我使用 throttle 添加了 400 毫秒的等待时间。这似乎也解决了 Firefox 同时显示新文本和输入字段的问题。我已经粘贴了有问题的行,下面是更新的小提琴:

editing: ko.observable(false).extend({ throttle: 400 }),

http://jsfiddle.net/stevehnh/GNssr/2/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 2020-12-22
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多