onblur和onkeydown冲突问题

onkeydown和onblur冲突问题,onkeydown一个function,onblur也有一个function,两个function是同一个function,只要我回车就会调用两次funtion,应该怎么解决,我不想删除onkeydown里的function然后只剩下onblur里面的function,调用okeydown的时候更换焦点调用onblur,我想既能实现回车调用function也可以失去焦点调用function,同时调用onkeydown只走onkeydown不触碰onblur,onblur只调用onblur不触碰onkeydown,无论我回车还是失去焦点,都只走一遍function,求解决办法

jQuery:bind方法绑定事件

// 常规写法:
var count = 0;
$(".btn").bind("click mouseenter mouseleave",function(event){
    // 事件类型(行为)
    var origType = event.handleObj.origType;
    // 判断事件类型
    if(origType == "click"){
        count ++;
        console.log("click",count);
        if(count == 5){
            // $(".btn").unbind("click");//解绑点击事件
            $(".btn").unbind();//解绑所有的事件
        }
    }else if(origType == "mouseleave"){
        console.log("mouseleave");
    }
})

你需要判断 keyCode 码 ==13 再执行 。要不然 肯定会冲突


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
      
    </style>
</head>
<body>
   <input type="text" id="txt">
</body>
<script>
    let txt=document.getElementById("txt");
    txt.onblur=function(){
        console.log("失去焦点")
        v();
    };
    txt.onkeydown=function(e){
        let keyCode=e.keyCode;
        if(keyCode==13){
            console.log("键盘按下");
            v()
        }
       
    }
    function v(){
        console.log("888")
    }
</script>
</html>