下面的代码 在tit1-1和tit1-2上点击时也会弹出 对话框 显示"tit1",有没有办法只在tit-1上点击上才alert?
<ul>
 <li onclick="alert('tit1')">
tit1
<ul>
  <li>tit1-1</li>
  <li>tit1-2</li>
</ul>
 </li>
</ul>

解决方案 »

  1.   

    最简单的方法单独加个标签<ul>
     <li>
        <span onclick="alert('tit1')">tit1</span>
        <ul>
          <li>tit1-1</li>
          <li>tit1-2</li>
        </ul>
     </li>
    </ul>
      

  2.   

    <!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=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript">
    function ss(e){
    var a=e||window.event;
    var src=a.srcElement||a.target;
    if(src.innerHTML==document.getElementsByTagName("li")[0].innerHTML){
    alert("1");
    }
    }
    window.onload=function(){
    document.getElementsByTagName("li")[0].onclick=ss;
    }
    </script>
    </head><body>
    <ul>
     <li>
        tit1
        <ul>
          <li>tit1-1</li>
          <li>tit1-2</li>
        </ul>
     </li>
    </ul>
    </body>
    </html>
    这样试试
      

  3.   


    <ul>
     <li onclick="if(this==event.srcElement) alert('tit1')">
    tit1
    <ul>
      <li>tit1-1</li>
      <li>tit1-2</li>
    </ul>
     </li>
    </ul>
      

  4.   

    <ul>
     <li onclick="alert('tit1')">
        tit1
        <ul onclick="event.stopPropagation?event.stopPropagation():event.cancelBubble=true">
          <li>tit1-1</li>
          <li>tit1-2</li>
        </ul>
     </li>
    </ul>阻止冒泡
      

  5.   


    可行能解释一下
    var a=e||window.event;
    var src=a.srcElement||a.target;
    是什么意思吗?
      

  6.   

    我改了一下 为什么就不行了?<script src="jquery-1.4.2.min.js"></script>
    <script>
    $(function(){
    $("#ul1").click(
    event.stopPropagation?event.stopPropagation():event.cancelBubble=true
    })
    })
    </script><ul>
     <li onclick="alert('tit1')">
        tit1
        <ul id="ul1">
          <li>tit1-1</li>
          <li>tit1-2</li>
        </ul>
     </li>
    </ul>
      

  7.   

    <ul>
        <li onclick="alert('tit1')">
            tit1
            <ul onclick="window.event?event.cancelBubble=true:event.stopPropagation()">
                <li>tit1-1</li>
                <li>tit1-2</li>
            </ul>
        </li>
    </ul>
    //说白了就是禁止冒泡
      

  8.   

    jquery就不用判断是否ie了,直接调用stopPropagation,你的代码结构有问题    $(function () {
            $("#ul1").click(function (e) {
                e.stopPropagation();
            });
        });
      

  9.   


    这样改也不行:
    <script src="jquery-1.4.2.min.js"></script>
    <script>
    $(function(){
    $("#ul1").click(
    function(event){
    event.stopPropagation?event.stopPropagation():event.cancelBubble=true
    }

    })
    })
    </script><ul>
     <li onclick="alert('tit1')">
        tit1
        <ul id="ul1">
          <li>tit1-1</li>
          <li>tit1-2</li>
        </ul>
     </li>
    </ul>
      

  10.   

    <script>
    $(function(){
        $("#ul1").click(function(event){
            event.stopPropagation?event.stopPropagation():event.cancelBubble=true   
        })
    })
    </script>
    仔细点吧