鍍金池/ 問答/HTML/ 關(guān)于onclick 點擊事件要點兩次才能顯示的問題

關(guān)于onclick 點擊事件要點兩次才能顯示的問題

menu[4].onclick=function(){

dis('menu4');

}

function dis(disp){

var str=document.getElementById(disp);
var dis=str.style.display;
if(dis=='none'){
str.style.display='block';
}else{
str.style.display='none';

}

}
這個簡單下拉菜單的效果要點擊兩次才能實現(xiàn) 為什么 要怎么處理

回答
編輯回答
陌南塵

display 沒有初始化吧

2018年6月11日 00:58
編輯回答
慢半拍

var dis = str.style.display; 看看這個時候的dis是block還是none,如果是block 點擊第一次的時候根據(jù)判斷走的是str.style.display='none'; 還是隱藏;再點一次才是block 顯示。

2018年5月21日 14:41
編輯回答
好難瘦

首先兄弟 你那個 獲取其ID名時不該加引號嗎? 引號沒有 嚴格來說不知道你這個為啥會執(zhí)行,你在點擊事件中又調(diào)用了個函數(shù) 其實兄弟 你如果只想點擊一次 那你直接把那個寫到DOM0級事件不是更好嗎? 或者說你想點擊兩次為啥不綁個dbonclick呢? 你這個在函數(shù)體內(nèi)部聲明的變量全部為局部變量 難道你不擔心你想在外部引用時 引用不到嗎?

2017年3月28日 16:34
編輯回答
獨特范
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表格</title>
</head>
<body>
    <div id="btn" style="width: 100px;background-color: yellow;">按鈕</div>
    <div id="disp" style="width:400px;height: 400px;background-color: red;"></div>
    <script>
        var Btn = document.getElementById('btn');
        Btn.onclick = function(){
            dis('disp');
        };

        function dis(getId){
            var str = document.getElementById(getId);
            var dis = str.style.display;
            if( dis == 'none' ){
                str.style.display = 'block';
            }else{
                str.style.display = 'none';
            }
        }
    </script>
</body>
</html>

沒看出來你的代碼問題出在哪里,要想知道bug那就只能用游覽器開發(fā)模式打斷點了。。。

2018年6月9日 08:19