<input type="button" id="btn" onclick='div.style.display = div.style.display=="none"?"":"none";'/>   <div id='div' style="display:none"  align="left">                 
 ~~~~~~~
   </div>现在的效果是当我点击第一次就显示,还是原来的button点击第二次就不显示嘛我想要的效果是当我点击这个button时显示,点击其它按钮时不显示,改为服务器控件,HTML控件都可以

解决方案 »

  1.   

    document.onclick=function(){
      if(e.srcElement.id != "btn")
        div.style.display = "none";
    }
      

  2.   

    上面写错了,是这个
    document.onclick=function(){
      if(event.srcElement.id != "btn")
        div.style.display = "none";
    }
      

  3.   


        function showdiv(){
        var divMusicLst = document.getElementById("div");
                    if(divMusicLst.style.display == "none")
                    {
                        divMusicLst.style.display="block"
                    }
                    else
                    {
                        if(event.srcElement.id != "btn")
                        {
                        divMusicLst.style.display="none"
                        }
                    }
    }
      

  4.   

    我觉得有几种办法
    1.如果可以的话可以在你点击第一次的时候把这个button变成disable的状态
    2.通过HTML的办法的话可以在点击事件上面添加一个脚本事件,然后设置一个计数器的变量
    3.通过动态的给div添加css样式,如果在第二次点击的时候判断已经存在css样式,那么就不进行执行操作后两种方法都需要添加判断建议把这种onclick写成脚本来执行
      

  5.   

    要判断是否再次点击的事件,你可以用计数器,没次把计数器存在你一个持久化变量里就可以了,如Session.如是要点击其它Button时,该Button不显示,你直接在其它Button事件里判断一下该Button是否是显示状态,是的话设为隐藏就可以了.如用服务器控件,
    if(button1.Visible==true)
    {
       button1.Visible=false;
    }
      

  6.   

    加runat="server"
    在其他按钮事件里加 div1.visible="false";
      

  7.   

    上面几位大人都给出答案了,就不写了,再补充两方法你看看第一种是用onblur<input type="button" onclick="document.getElementById('test').style.display='block'"  onblur="document.getElementById('test').style.display='none'" value="显示div">
    <div id="test" style="display:none">
    test
    </div>你看看这样中不
    当你点击按钮后就会显示test div
    当你点别的地方的时候就会隐藏了
    缺点是除了你点这个按钮外点其它任何地方,包括空白区域都会隐藏(onblur控制的,呵呵)
    还有种写法
    <script language = "javascript">document.onclick = onClick; // 当用户在文档中点击是调用onClick function()function onClick(ev)
    {
            ev = ev || window.event; // 事件    
            var target    = ev.target || ev.srcElement; // 获得事件源
            var dragObj = target.getAttribute('type');
            var dragID= target.getAttribute('id');
            if(dragID=="btn"){
                document.getElementById('test').style.display='block';
            }else{
                if(dragObj=="button"){
                    document.getElementById('test').style.display='none';
                }
            }
    }</script><input id="btn" type="button" value="显示div">
    <div id="test" style="display:none">
    test
    </div>这种写法是在你点另一个button按钮时才会隐藏,你也可以if(dragObj=="button"){改成你任何想要的类型,比如if(dragObj=="text"){,或者通过id啊 name啊等等都可以控制滴