做一个下拉菜单,点击链接显示菜单,点击空白处隐藏菜单
显示菜单没问题了,实现隐藏菜单:document.attachEvent("onclick",hidediv);不判断点击源的话,点击链接会触发显示和隐藏两个方法,菜单无法显示出来,
所以关键是hidediv方法中如何获取点击源在显示方法中获取window.event,显示链接的id名;但在隐藏方法的获取window.event,则显示[object],如何在隐藏方法中也获取到链接的id名?

解决方案 »

  1.   

    onclick="clicked()"function clicked(e){
        var elem = e.srcElement || e.target;
        // elem 就是那个 dom元素了,取 id 或其它的就可以在这里取了
    }
      

  2.   

    onclick="clicked()"function clicked(e){
    e=e||event;
      var elem = e.srcElement || e.target;
       // 这样才能兼容多浏览器
      // elem 就是那个 dom元素了,取 id 或其它的就可以在这里取了
    }
      

  3.   

    http://www.men-ideal.com/archives/441
      

  4.   

    上面链接是解决this指向的文章。
      

  5.   

    不会。var elemtarget = event.srcElement || event.target;
    if ( elemtarget .nodeType === 3 ) {
       elemtarget = elemtarget.parentNode;
    }
    if(!elemtarget){
       elemtarget=document;
    }
      

  6.   

    不用那么麻烦在显示函数中加入一个flag. 1表示已显示 0表示已隐藏if(flag==0){
       do显示;
       flag=1;
       return;
    }
    else if(flag==1){
       do隐藏;
       flag=1;
       return;
    }