html<ul>
<li id="rootli">
  列表1
  <ul>
     <li>这里没有id</li>
     <li>动态生成的li,如何在mouseover时判断这个li有没有id?</li>
  </ul>
</li> 
</ul>$("li").mouseover(function () {
        nowID = $(this).attr("id");
        if (nowID != "" && nowID != null) {
            alert($(this).attr("id"));
        }
    })用jquery得到当前li的id,若没有id,则不弹出窗口了。但现在问题是,没有id的li在有id的li的嵌套中,这样每次访问子列表也就代表访问了父列,一样会弹出窗口。
问题是:我要的效果鼠标当前指向的li若没id,就不要弹窗,不管父列有没有id,如何做到

解决方案 »

  1.   

    你这是事件冒泡导致的。你可以这样
    <script src="jquery.js"></script>
    <ul>
    <li id="rootli">
      列表1
      <ul>
         <li>这里没有id</li>
         <li id="xx">动态生成的li,如何在mouseover时判断这个li有没有id?</li>
      </ul>
    </li> 
    </ul>
    <script>$("li").mouseover(function (event) {
    if(event.target==this)
    {
            nowID = $(this).attr("id");
            if (nowID != "" && nowID != null) {
                alert($(this).attr("id"));
            }
    }
        })
    </script>
      

  2.   

    阻止子li的mouseover 向上冒泡就行了    $("li").mouseover(function(e) {
            nowID = $(this).attr("id"); if (nowID != "" && nowID != null) { alert($(this).attr("id")); }
           e.stopPropagation(); 
         })