<li class="channel_itme_li"><span><input type="checkbox" /></span><span>这里是一级标题</span></li>
<li class="sub_item">......</li>
js部分:
$(".channel_itme_li").click(function(){  
var  answer=$(this).next();  
if(answer.is(":visible"))  {  
answer.hide();  
}else{  
answer.show();  
}  
}); 点击.channel_itme_li的时候 .sub_item会显示|隐藏,但是点击checkbox的时候也会触发$(".channel_itme_li").click,如何做到点击checkbox不触发$(".channel_itme_li").click。

解决方案 »

  1.   

    你那你得做一个checkbox的一个事件,比如:onclick=return false;试一下。
      

  2.   

    这个我试过,checkbox  onclick=return false;的话,复选框就选择不上,不是解决问题的方法!
      

  3.   

    checkbox外面不需要span吧?把那个去掉后代码这样写:$(".channel_itme_li span").click(function(){   
    var answer=$(this).next();   
    if(answer.is(":visible")) {   
    answer.hide();   
    }else{   
    answer.show();   

    }); 如果span不想去掉,那就给后面的span加个class跟前面的区分。
      

  4.   

    好像还用到li的下一个li,代码修改之后触发的是span的点击事件,可能要$(this).parent().next(); 
      

  5.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <style>
    </style>
    <script src="jquery-1.3.2.js"></script>
    <script>
    $(function(){
    $(".channel_itme_li").click(function(){  
    var answer=$(this).next();  
    if(answer.is(":visible")) {  
    answer.hide();  
    }else{  
    answer.show();  
    }
    });
    $("#test").click(function(e){
    e.stopPropagation();
    });
    });
    </script> 
    </head> 
    <body>  
    <li class="channel_itme_li">
    <span><input type="checkbox" id="test" /></span>
        <span>这里是一级标题</span>
    </li>
    <li class="sub_item">......</li>
    </body> 
    </html>
    防止冒泡
      

  6.   


    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script><li class="channel_itme_li"><span><input type="checkbox" onclick="x(event)" /></span><span>这里是一级标题</span></li>
    <li class="sub_item">......</li>
    <script>
    function x(evt)
    {

    if(window.event)
    {
    event.cancelBubble = true;
    }
    else
    {
    evt.stopPropagation(); 
    }
    }
    $(".channel_itme_li").click(function(){  
    var answer=$(this).next();  
    if(answer.is(":visible")) {  
    answer.hide();  
    }else{  
    answer.show();  
    }
    });  
    </script>