猿问

input blur事件的触发

问题简述:两个input同时绑定了blur事件,在input1触发input2的blur事件时,首先会触发input2的blur,然后紧接着不断触发input1的blur;

代码如下:

<!DOCTYPE html>

<html>


<head>

    <meta charset="utf-8" />

    <title></title>

    <style type="text/css">

    input,textarea,button{

        margin:10px;

    }

    </style>

    <script src="jquery-3.2.1.min.js" type="text/javascript" charset="utf-8"></script>


</head>

<body>

    <input type="text" id="inp1"/><br>

    <input type="text" id="inp2" /><br>

    <script type="text/javascript">

    $('#inp1').blur(function(){

        alert($(this).attr('id'));

        return false;

    })

    $('#inp2').blur(function(){

        alert($(this).attr('id'));

        return false;

    })

    </script>

</body>

</html>


想请教一下大家有没有好的办法可以实现在这种触发条件下只触发input2的blur,能说明一下这种情况产生的原因或者有相关的资料链接更好,万分感谢~


隔江千里
浏览 1778回答 1
1回答

慕无忌1623718

因为你从 inp1 到 inp2 时,inp2 获得 focus,inp1 变 blur,这时弹出了 alert ,当你点击关掉 alert 时离开了 inp2,触发了inp2 的 blur,弹出了新的 alert,而你关掉之前的 alert 之后光标又回到了 inp2。接下来就是死循环。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答