// close showed layer
function mclose(e)
{
   if(document.body !== e.srcElement)
return;if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}onclick 冲突了

解决方案 »

  1.   

    close(e)中的e 还要在哪个函数里加上呢?
    高手
      

  2.   

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>CSS下拉框体</title><style type="text/css">
    #sddm {
    margin: 0 auto;
    padding: 0;
    z-index: 30;
    background-color: #F4F4F4;
    width: 480px;
    height: 46px;
    }#sddm li {
    margin: 0;
    padding: 0;
    list-style: none;
    float: left;
    font: bold 15px arial
    }#sddm li a {
    display: block;
    margin: 0 1px 0 0;
    padding: 4px 10px;
    height: 25px;
    width: 60px;
    background: #5970B2;
    color: #FFF;
    text-align: center;
    text-decoration: none
    }#sddm li a:hover {
    background: #49A3FF
    }#sddm div {
    position: absolute;
    visibility: hidden;
    margin: 0;
    padding: 0;
    background: #EAEBD8;
    border: 1px solid #5970B2
    }#sddm div a {
    position: relative;
    display: block;
    margin: 0;
    padding: 5px 10px;
    width: auto;
    white-space: nowrap;
    text-align: left;
    text-decoration: none;
    background: #EAEBD8;
    color: #2875DE;
    /*下拉框下的问题大小*/
    font: 16px arial
    }#sddm div a:hover {
    background: #49A3FF;
    color: #FFF
    }
    </style>
    <script type="text/javascript">
    <!--
    var timeout = 500;
    var closetimer = 0;
    var ddmenuitem = 0; // open hidden layer
    function mopen(id) {
    // cancel close timer
    mcancelclosetime(); // close old layer
    if (ddmenuitem)
    ddmenuitem.style.visibility = 'hidden'; // get new layer and show it
    ddmenuitem = document.getElementById(id);
    ddmenuitem.style.visibility = 'visible'; //alert("111" + id); }
    // close showed layer
    function mclose() {
    if (ddmenuitem)
    ddmenuitem.style.visibility = 'hidden';
    } // go close timer
    function mclosetime() {
    closetimer = window.setTimeout(mclose, timeout);
    } // cancel close timer
    function mcancelclosetime() {
    if (closetimer) {
    window.clearTimeout(closetimer);
    closetimer = null;
    }
    } // close layer when click-out
    //document.onclick = mclose;
    // -->
    </script>
    </head><body style="text-align: center"> <ul id="sddm">
    <li><a href="#" onclick="mopen('m1')" onmouseout="mclosetime()">Home</a>
    <div id="m1" onmouseover="mcancelclosetime()"
    onmouseout="mclosetime()">
    <a href="#">HTML DropDown</a> <a href="#">DHTML DropDown menu</a> <a
    href="#">JavaScript DropDown</a> <a href="#">DropDown Menu</a> <a
    href="#">CSS DropDown</a>
    </div></li> <li><a href="#" onclick="mopen('m2')"
    onmouseout="mclosetime()">Download</a>
    <div id="m2" onmouseover="mcancelclosetime()"
    onmouseout="mclosetime()">
    <a href="#">ASP Dropdown</a> <a href="#">Pulldown menu</a> <a
    href="#">AJAX dropdown</a> <a href="#">DIV dropdown</a>
    </div></li>
    <li><a href="#" onclick="mopen('m3')"
    onmouseout="mclosetime()">Language</a>
    <div id="m3" onmouseover="mcancelclosetime()"
    onmouseout="mclosetime()">
    <a href="index.jsp">中文</a> <a href="#">English</a>
    </div></li>
    <li><a href="#" onclick="mopen('m4')"
    onmouseout="mclosetime()">Help</a>
    <div id="m4" onmouseover="mcancelclosetime()"
    onmouseout="mclosetime()">
    <a href="#">Download Help File</a> <a href="#">Read online</a>
    </div></li>
    <li><a href="#" onclick="mopen('m5')"
    onmouseout="mclosetime()">Contact</a>
    <div id="m5" onmouseover="mcancelclosetime()"
    onmouseout="mclosetime()">
    <a href="#">E-mail</a> <a href="#">Submit Request Form</a> <a
    href="http://www.codefans.net/" target="_blank">codefans.net</a>
    </div></li>
    </ul>
    <div style="clear: both"></div></body>
    </html>