在 checkbox框的点击事件里阻止冒泡即可,或者判断event.target

解决方案 »

  1.   


    $("#kemu :click").bind("click",function(event){ event.stopPropagation(); }
    这样写吗?这样的话 li的单击也无效了  
      

  2.   


    $("#kemu :click").bind("click",function(event){ event.stopPropagation(); }
    这样写吗?这样的话 li的单击也无效了  搞错:
    $("#kemu :checkbox").bind("click",function(event){ event.stopPropagation(); }
      

  3.   

    $(function(){
        $("#kemu ul,#kemu input").click(function(e){e.stopPropagation()});//每个li点击不能冒泡到ul外,包括input
        $("#kemu li").click(function(){
           $("ul",this).toggle();
        });
    })
      

  4.   


    <!DOCTYPE html>
    <html>
     <head>
    <title></title>
    <script src='http://code.jquery.com/jquery-1.11.0-beta1.js'></script>
     </head>
     <body>
     
    <ul id="kemu">
        <li>
            <input type='checkbox' value='496' />科目1
            <ul>
                <li>
                    <input type='checkbox' value='506' />科目1-1
                    <ul>
                        <li><input type='checkbox' value='508' />科目1-1-1</li>
                        <li><input type='checkbox' value='508' />科目1-1-2</li>
                    </ul>
                </li>
                <li>
                    <input type='checkbox' value='507' />科目1-2
                    <ul>
                        <li><input type='checkbox' value='509' />科目1-2-1</li>
                    </ul>
                </li>
            </ul>
        </li>
        <li><input type='checkbox' value='360' />科目2</li>
    </ul>
    <script>
        $(document).ready(function(){
            
            $("#kemu li").bind("click",function(event){
            //event.stopPropagation();    
                if($(">ul",this).length>0){
                    if($(">ul",this).is(":visible")){
                        $(">ul",this).css("display","none");
                    }else{
                        $(">ul",this).css({"display":"block"});  
                    }
                }
                
            }).find("*").click(function(){return false;});    })
    </script>
     </body>
     </html>
    find("*").click(function(){return false;});对其子后代的click事件重写