m0_46075468 2022-07-26 02:38 采纳率: 89.3%
浏览 40
已结题

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,求解决办法

  • 写回答

2条回答 默认 最新

  • 关注

    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");
        }
    })
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    m0_46075468 2022-07-26 07:21

    if(count==5)那段是什么意思呀,没理解,还有就是如果我想如果使用这个当我onkeydown的时候解绑onblur,onblur的是偶解绑onkeydown可以这么写吗

    回复
    黎明不管黑夜的星空 回复 m0_46075468 2022-07-26 07:46

    count那个是解绑事件,我之前用来尝试解绑事件的,你应该用不上,直接使用外面那个if和else if 判断是什么事件就行了,
    这个是直接判断你执行的是什么事件,然后在这个事件里面你是做什么,你把click那些替换成你需要的事件

    回复
    黎明不管黑夜的星空 回复 m0_46075468 2022-07-26 08:01

    这个应该可以了 你自己运行看看效果

    
    <!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>
    </head>
    
    <body>
        <input type="text" class="input">
        <script src="./jquery.min.js"></script>
        <script>
            $(".input").bind("blur keydown", function (event) {
                var origType = event.handleObj.origType;
                // 判断事件类型
                if (origType == "blur") {
                    console.log("blur");
                } else if (origType == "keydown") {
                    if (event.keyCode == 13) {
                        console.log("keydown");
                        this.blur();
                    }
                }
    
            })
        </script>
    </body>
    
    </html>
    

    回复
    展开全部4条评论
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 8月2日
  • 已采纳回答 7月26日
  • 修改了问题 7月26日
  • 修改了问题 7月26日
  • 展开全部
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部