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>