我有问题隐藏某些基于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();
- });