看这个Fiddle

<input type="number" value="1" min="1" step="1" ng-focus="logFocus()"/>


单击输入的步骤箭头时,焦点将记录在Chrome / Safari / Opera(未选中IE)中,但在Firefox上则什么也没有发生。

我错过了什么吗?

最佳答案

由于FF中的箭头未附加到输入元素,但已附加到文档主体,因此Onfocus事件不会在您的情况下触发。

看一下这个测试代码:
html->

<div class="test">
    <input type="number" min="1" step="1" value="1" id="test1" />  <br>
    <input type="number" min="1" step="1" value="1" id="test2" />
</div>


jQuery->

$(document).ready(function () {
    $(document).click(function (e) {
       console.log($(document.activeElement));
    });
});


在chrome中运行此代码并触摸箭头后,我在控制台中得到以下元素:

[input#test1, context: input#test1]


但是当我在FF中运行此代码时,我得到以下元素->

Object { 0: <body>, context: <body>, length: 1 }


如您所见,当您单击箭头时,焦点将移至其容器(在FF中为主体)。因此,您的活动无效。

链接到JsFiddle

关于javascript - ngFocus在Firefox上受到攻击?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31772147/

10-11 09:30