注意哦:onblur肯定是实现不了的,因为操作div里面的控件时,它已失去焦点

解决方案 »

  1.   

    关键是怎么触发这个控制事件了?未触发事件何以改变css属性?
      

  2.   

    给文本框加上 onmouseout="" 试试是看
      

  3.   

    不行的 不用鼠标这个事件就没用了 就算用鼠标,也不行 因为div内还有其它控件
      

  4.   

    给你提供几个方案
    (1) 在onblur事件中判断一下 toElement (FF下是 relatedTarget)是不是在DIV中,
    如果不是则关闭DIV。IE下有一上函数 obj.contains();可以用来进行判断。
    不多说了,这个有很多的例子可以参考。(2)如果只是IE下的话,还可以用createPopup()
    当弹出窗口失去焦点的时候系统会自动关闭弹出窗口。
      

  5.   

    给DIV注册一个onmouseover事件,看可以不?
      

  6.   

    你可以在document.onmousedown还有document.onkeyup事件中来做。然后判断一下事件激发的对象是不是在div内部。这样就可以了。
      

  7.   

    <html lang="utf-8" xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <title></title>
            <style>
            </style>
        </head>
        <script language="JavaScript">
            function $(id){
                return (document.getElementById(id));
            }
            
            function test(evt){
    if(!$('div1')||$('div1').style.display=='none'){
    return;
    }
                var e = window.event || e;
                var o = e.srcElement || e.target;
                while (o) {
                    if (o == $("div1")) {
                        return;
                    }
                    o = o.parentNode;
                }
    //            alert("hi! you should close the div1!")
    $('div1').style.display='none';
            }
            
            window.onload = function(){
                document.onblur = document.onmousedown = document.onkeyup = test;
            }
        </script>
        <body>
         <input type="button" value="show div" onclick="$('div1').style.display='block';"><br>
            <input type="text" value=""><br>
    <input type="text" value=""><br>
            <div id="div1" align="center" style="background:blue;position:absolute;left:300px;top:200px;width:300px;height:200px;overflow:auto;display:none;">
                <br>
    <p>
                    测试一下<input type="text" vlaue="">
                    <br>
                    测试一下<input type="text" vlaue="">
                    <br>
                </p>
            </div>
        </body>
    </html>
      

  8.   

    文本框的onpropertychange事件触发DIV显示
    鼠标点击事件中,DIV会隐藏,分集中情况,引用eventSource判断,事件源是DIV、文本框还是页面其他部分。
    点击DIV时,DIV将点击的项放入文本框内。
    点击文本框时,DIV显示情况不变。
    点击页面其他部分,DIV隐藏。
      

  9.   

    虽然在firfox下不能使用,但还是非常感谢syukugai ,我再改一下应该就可以了
    Thank you!