<div id="test_div"><button id="del_btn" type="button" onclick="test(event);" class="minbut delitem"></button></div>function test(){
   var e = (evt)?evt:window.event;  
   if (window.event) {  
e.cancelBubble = true;  
   } else {   
e.stopPropagation();  
   }  
   alert(1);
}test_div实现的拖动效果 ,如上我也把冒泡取消了,但del_btn还是无法执行到test() ?

解决方案 »

  1.   

    function test(evt){ 
      var e = (evt)?evt:window.event;  
      if (window.event) {  
    e.cancelBubble = true;  
      } else {  
    e.stopPropagation();  
      }  
      alert(1); 

      

  2.   


        function test(evt){ 
          var e = (evt)?evt:window.event;  
          if (window.event) {  
        e.cancelBubble = true;  
          } else {  
        e.stopPropagation();  
          }  
          alert(1); 
        } 
    event必须显式传递楼主 我用冒泡处理的都是这样的
    <p>解决冒泡问题</p>
            <ul class="links">            
                <li><a href="#">Home</a> </li>
                <li><a href="default3.aspx">About</a> </li>
                <li><a href="default3.aspx">About</a> </li>
                <li><a href="default3.aspx">About</a> </li>
            </ul>
        </div>    <script>
            var all=tag("*");
            for(var i=0;i<all.length;i++){
            all[i].onmouseover=function(e){
            this.style.border="1px solid red";
            stopBubble(e);//把这行注释 看看效果 你就明白了
            };
            all[i].onmouseout=function(e){
            this.style.border="0px";
            stopBubble(e);//把这行注释 看看效果 你就明白了
            }
            }
        </script>
    function stopBubble(e){//阻止事件冒泡的通用方法
    if(e&&e.stopPropagation)
    e.stopPropagation();
    else
    window.event.cancelBubble=true;
    }
    不知道你干吗要那样处理?
      

  3.   

    外送楼主一个函数function stopDefault(e){//防止发生默认浏览器行为的通用函数
    if(e&&e.preventDefault)
    e.preventDefault();
    else
    window.event.returnValue=false;
    }