日期:2014-05-16  浏览次数:20474 次

请问我做的这个按钮为什么需要点击两次才能激活呢
CSS code

#smile_bg{margin:0; padding:0; background:url(images/smile_bg.gif) no-repeat;width:435px; height:304px; margin-top:-5px; display:none;}


JScript code

function smile_Swich() {    
    if (GetByID('smile_bg').style.display == 'none') {
        GetByID('smile_bg').style.display = 'block';
    } else {
        GetByID('smile_bg').style.display = 'none';
    }
}
function GetByID(str) {
    var v = document.getElementById(str);
    return v;
}


HTML code

<img src="images/111.gif" onclick="smile_Swich()" />


我点击按钮两次才能把我想要显示的元素显示出来,以后点击就可以点击一次激活显示和隐藏了,为什么呢?

------解决方案--------------------
从代码上看是没有任何问题的。。。楼主。。。

我个人觉得问题应该是出在了图片的预加载的问题上了。。。

你这样,将css里面的display:none去掉。。。在你的window.onload里面再将其隐藏试试,应该就可以了的。。。
------解决方案--------------------
GetByID('smile_bg').style.display获取不到样式设置的none的
所以第一次获取到的是null,和=='none'对比不对,执行了GetByID('smile_bg').style.display = 'none';

第二次由于第一次设置了none,所以对比成功,执行了block语句

JScript code
if (GetByID('smile_bg').style.display != 'block') {/////改成这样判断就好了
        GetByID('smile_bg').style.display = 'block';
    } else {
        GetByID('smile_bg').style.display = 'none';
    }