javascript - blur 和enter冲突怎么解决?

查看:115
本文介绍了javascript - blur 和enter冲突怎么解决?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

HTML

<input type="text" />

JS:

<script>
    $("input").blur(function(){
        alert("bluring");
    });
    $("input").keydown(function(e){
        if(e.keyCode === 13){
            alert("keydowning");
        }
    })
</script>    

很明显当执行keydown时弹出alert("keydowning");但是点击alert的确定后就会又触发blur无限死循环,我想分别执行两种效果互不影响该怎么解决??谢谢

解决方案

<script>

var shouldAlert=true
var isAlert = false
$("input").blur(function(){
    if(shouldAlert){
        alert("bluring");
        shouldAlert=false
    }
});

$("input").focus(function(){
    if(!shouldAlert){
        setTimeout(function(){
            shouldAlert=true
        },0)
    }
})
$("input").keydown(function(e){
    if(e.keyCode === 13){
        shouldAlert=false
        alert("keydowning");
    }
})

</script>

这篇关于javascript - blur 和enter冲突怎么解决?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆