微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Div元素上的jquery blur()事件出现问题

我有问题隐藏某些基于div的弹出窗口.当我点击那些他们不隐藏的div.这是我正在做的示例代码..
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>

    <script type="text/javascript" src="../JS/jquery-1.3.2.js"></script>
    <script type="text/javascript">
        $(document).ready(function()
        {
            $("#MainCanvas div").blur(function()
            {
                alert("blured");
            });
        });
    </script>

</head>
<body>
    <div id="MainCanvas" style="width: 400px; height: 350px; border: solid 1px black;">
       <div class="ui-widget-content" style=" vertical-align:middle; height:60px; border: solid 2px black; width:300px;">
            Drag me around
        </div>
    </div>

</body>
</html>

解决方法

如果我没记错的话,只有A,AREA,BUTTON,INPUT,LABEL,SELECT,TEXTAREA会创建焦点/模糊事件.如果要通过单击外部来隐藏弹出窗口,则必须例如在文档上侦听单击事件并检查事件是在弹出窗口内部还是外部发生.

示例代码

$(document).click(function(e){
    if($(e.target).is('#MainCanvas,#MainCanvas *'))return;
    $('#MainCanvas').hide();
});

原文地址:https://www.jb51.cc/css/217931.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。