怎样给这样的触发式菜单加个延迟感应的效果!
现在这个脚本,当鼠标滑过某个菜单目录时,就会瞬间显示出目录内容。
我需要实现当鼠标移动到某个菜单目录时,延迟一段时间(0.5)后才显示出目录的内容。
不知道到这个脚本修改后,能否实现,还请高手指点,本人超级菜鸟!这个是脚本
function etabit(btn){
var idname = new String(btn.id);
var s = idname.indexOf("_");
var e = idname.lastIndexOf("_")+1;
var tabName = idname.substr(0, s);
var id = parseInt(idname.substr(e, 1));
var tabNumber = btn.parentNode.childNodes.length;
for(i=0;i<tabNumber;i++){
document.getElementById(tabName+"_div_"+i).style.display = "none";
document.getElementById(tabName+"_btn_"+i).className = "";
};
document.getElementById(tabName+"_div_"+id).style.display = "block";
btn.className = "curr";
};

解决方案 »

  1.   


    <script type="text/javascript">
    function etabit(btn){
        var idname = new String(btn.id);
        var s = idname.indexOf("_");
        var e = idname.lastIndexOf("_")+1;
        var tabName = idname.substr(0, s);
        var id = parseInt(idname.substr(e, 1));
        var tabNumber = btn.parentNode.childNodes.length;
    setTimeout(function(){
        for(i=0;i<tabNumber;i++){
                document.getElementById(tabName+"_div_"+i).style.display = "none";
                document.getElementById(tabName+"_btn_"+i).className = "";
            };
            document.getElementById(tabName+"_div_"+id).style.display = "block";
            btn.className = "curr";
    },3000);
    };
    </script>
      

  2.   

    这个不是我想要的效果,可能是我没说清楚。
    我要的是 鼠标停留在某个菜单目录上时,延迟一段时间(0.5)后才显示出目录的内容。
    MuBeiBei 你这个是鼠标滑过菜单目录后,延迟3秒才显示目录的内容。
    我需要延迟的目的 是为了防止鼠标无意滑过目录后就立刻显示该目录内容,使网页显得很乱。所以需要延迟。
      

  3.   


    <script type="text/javascript">
    function etabit(btn){
        var idname = new String(btn.id);
        var s = idname.indexOf("_");
        var e = idname.lastIndexOf("_")+1;
        var tabName = idname.substr(0, s);
        var id = parseInt(idname.substr(e, 1));
        var tabNumber = btn.parentNode.childNodes.length;
        for(i=0;i<tabNumber;i++){
                document.getElementById(tabName+"_div_"+i).style.display = "none";
                document.getElementById(tabName+"_btn_"+i).className = "";
            };
            document.getElementById(tabName+"_div_"+id).style.display = "block";
            btn.className = "curr";
    };
    var a = '';
    function mouseOver(btn){ //鼠标进来时
    a = setTimeout(function(){etabit(btn)},5000);
    };
    function mouseOut(){clearTimeout(a);}//鼠标离开时就清空setTimeout
    </script>
      

  4.   


    <script>
        var TIMER;
        var inited=false;
        function etabit(btn){
            if(!inited)
                sleep(0.5,btn)
            else{
                var idname = new String(btn.id);
                var s = idname.indexOf("_");
                var e = idname.lastIndexOf("_")+1;
                var tabName = idname.substr(0, s);
                var id = parseInt(idname.substr(e, 1));
                var tabNumber = btn.parentNode.childNodes.length;
                for(i=0;i<tabNumber;i++){
                    document.getElementById(tabName+"_div_"+i).style.display = "none";
                    document.getElementById(tabName+"_btn_"+i).className = "";
                };
                document.getElementById(tabName+"_div_"+id).style.display = "block";
                btn.className = "curr";
                inited=false
            }
            
        };
        function sleep(tm,arg1){
            inited=true;
            TIMER=setTimeout(function(){etabit(arg1)},tm*1000);
        }
    </script>