JQuery事件抑制

时间:2009-02-01 01:05:19

标签: javascript javascript-events jquery

我有一个输入框,我已将blur和keypress事件都绑定到输入。但问题是当有按键事件时,模糊事件也会触发。有什么方法可以在按键事件发生时抑制模糊事件吗?

感谢

3 个答案:

答案 0 :(得分:2)

听起来像你的EventHandlerKeyPress()函数中的某些东西会引起模糊。

答案 1 :(得分:1)

我简化了你的代码只是为了测试,并且无法得出关于事件触发顺序的相同结论。 Firebug的控制台显示以下代码执行产生.keypress始终在.blur之前出现

<script>

    $(document).ready(function() {

        $("#inpt").blur(function(e) {
            console.log(".blur");
        });

        $("#inpt").keypress(function(e) {
            console.log(".keypress");
        });
    });

</script>

你究竟想用.onchange和.keypress绑定到同一个字段?如果您也发布了事件处理程序代码,可能会有所帮助。

此外,您还有一个全局document.keypress绑定,有什么特别的原因吗?

答案 2 :(得分:0)

    

<script src="jquery-1.3.1.js" type="text/javascript"></script>

<script type="text/javascript">

    $(document).ready(function() {

        $("#inpt").blur(function(e) {
            EventHandlerBlur(e);
        });
       $("#inpt").keypress(function(e) {
              EventHandlerKeyPress(e);
          });

          $(document).keypress(function(e) {
              EventHandlerKeyPress(e);
          });


    });
</script>

                            

这是具有相同行为的代码。实际上输入输入/甚至按下输入框上的任何键都会导致模糊事件在按键事件之前首先触发..