75 lines
2.3 KiB
JavaScript
75 lines
2.3 KiB
JavaScript
// Copyright 2006-2007 javascript-array.com
|
|
// http://javascript-array.com/scripts/simple_drop_down_menu/
|
|
//
|
|
// Redistribution and use in source and binary forms, with or without
|
|
// modification, are permitted provided that the following conditions are
|
|
// met:
|
|
//
|
|
// (1) Redistributions of source code must retain the above copyright
|
|
// notice, this list of conditions and the following disclaimer.
|
|
//
|
|
// (2) Redistributions in binary form must reproduce the above copyright
|
|
// notice, this list of conditions and the following disclaimer in
|
|
// the documentation and/or other materials provided with the
|
|
// distribution.
|
|
//
|
|
// (3) The name of the author may not be used to
|
|
// endorse or promote products derived from this software without
|
|
// specific prior written permission.
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
// DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
|
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
|
// IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
// POSSIBILITY OF SUCH DAMAGE.
|
|
//
|
|
|
|
var timeout = 250;
|
|
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';
|
|
|
|
}
|
|
// 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;
|