jQuery .focusout()也是在Firefox 33.1中出现.keyup()的时候

时间:2014-11-24 16:35:43

标签: javascript jquery

当我在输入表单html字段中发布一个键时,我在jQuery中的Firefox 33.1中获得了一个keyup事件以及一个不需要的focusout事件。我只是想在释放密钥时获得keyup事件。

这是我的代码:

<html>
    <head>
        <script src="libraries/jquery/jquery-1.11.1.min.js"></script>
    </head>
    <body>
        <form id="contact_form">
            <input class="contact_save" type="text" value="" />
        </form>
    </body>
    <script>
        $(document).ready(function($){
            $('#contact_form .contact_save').focusout(function() {
                alert("focusout!");
            });
            $('#contact_form .contact_save').keyup(function() {
                alert("keyup!");
            });
        });
    </script>
</html>

我做错了什么?

由于

迈克尔

2 个答案:

答案 0 :(得分:3)

这是因为警报会导致调出焦点。将结果放在另一个元素中作为示例不会导致它触发:

$('#contact_form .contact_save').focusout(function() {
  alert("focusout!");
});
$('#contact_form .contact_save').keyup(function() {
  $('#result').val('keyup');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form id="contact_form">
  <input class="contact_save" type="text" value="" />
  <output id="result" />
</form>

答案 1 :(得分:0)

尝试使用:

$('#contact_form .contact_save').blur(function() {
    alert("focusout!");
});