0

我有非常简单的代码如下

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title><style>span {display:none;}  </style>
</head>
<body>

  <p><input type="text" id="a"/> <span>focus fire</span></p>

<p><input type="password" /> <span>focus fire</span></p>


  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>


<script>

    $("input").focus(function () {

        $(this).next("span").css('display', 'inline').fadeOut(1000);
        alert("he");
    });

    $(function () {
        $("#a").focus();
    });
</script>

</body>
</html>

在 Chrome 和 Safari 中,alert 一直触发,与 IE、FF、Opera 相比,它们只触发一次。有人可以解释一下吗?

4

1 回答 1

0

这是因为 Chrome 和 Safari 在解除警报后再次将注意力集中在元素上,这会导致触发另一个警报,依此类推。解除警报后,其他浏览器只是不关注任何内容,这就是为什么它不会无休止地触发的原因。

于 2013-08-18T14:59:21.270 回答