读书人

关于jquery得到列表id的有关问题

发布时间: 2012-04-03 12:38:19 作者: rapoo

关于jquery得到列表id的问题
html

HTML code
<ul><li id="rootli">  列表1  <ul>     <li>这里没有id</li>     <li>动态生成的li,如何在mouseover时判断这个li有没有id?</li>  </ul></li> </ul>


JScript code
$("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,如何做到

[解决办法]
你这是事件冒泡导致的。你可以这样
<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>
[解决办法]
阻止子li的mouseover 向上冒泡就行了
JScript code
    $("li").mouseover(function(e) {        nowID = $(this).attr("id"); if (nowID != "" && nowID != null) { alert($(this).attr("id")); }       e.stopPropagation();      })
[解决办法]
阻止冒泡就行了。

读书人网 >JavaScript

热点推荐