输入字段双击和焦点()错误 - 谷歌浏览器

时间:2016-02-11 11:12:19

标签: javascript jquery macos google-chrome

奥基!我试图在StackOverflow(SC)中找到一个关于GH(版本-48)的神秘行为的答案,我认为这个月初出现了但是我找不到描述问题的类似帖子甚至是某些东西接近它。

这个JS小提琴应该是不言自明的:https://jsfiddle.net/xbu061yw/4/

HTML:

<div class="box">
  <input type="input" disabled>
</div>
<div class="box">
  <input type="input" disabled="disabled">
</div>

JS&amp; jQuery的:

$('.box').dblclick( function() {

    $(this).find("input").prop("disabled", false).focus();

});

$('.box').focusout(function() {

    $(this).find("input").prop("disabled", true);

});

(如果您打开Safari中的小提琴或较旧的GH版本,那么就没有错误了。)

行为描述:

在页面加载时,输入被禁用。 (如果通过HTML中的内联属性或页面加载时通过JS禁用输入,则无关紧要)。 JS中的双击事件将删除“disabled”属性并将焦点设置为input元素。 这里有趣的部分:尝试在输入字段中输入关注的东西!没有任何反应!

当您在输入字段上放置一个focusout事件处理程序以将属性“disabled”设置为true时,就会开始更有趣。当第二次禁用输入字段时,如果再次双击尝试输入它,则无法看到插入符号闪烁(即使输入字段具有焦点)但您现在可以输入并且所有内容都显示为再好了。

如果您继续并进入“圈子的最后一步”,即删除您刚刚在输入字段中输入的所有内容并单击其外部,以便触发焦点输出事件。如果你这样做,那么当你双击输入字段时,一切都从头开始。

我希望我以一种可以理解的方式描述问题!

所以我的问题是:

  1. 为什么会这样?
  2. 这个问题有解决方法吗?
  3. 干杯!

    更新

    看起来这个bug只能在OS X上重现!小提琴在Windows GH(版本48)上运行良好。

0 个答案:

没有答案
相关问题