一个JQ的小问题

apache2007 2011-04-06 04:23:24
大家好~~ 我就直接了当的说了,我的页面中有如下内容:

<div id="tree">
<ul>
<li id="root1">
root
<ul>
<li id="first1">first1
<ul>
<li id="second1">second1</li>
<li id="second2">second2</li>
</ul>
</li>
<li id="first2">first2</li>
<li id="first3">first3</li>
</ul>
</li>
<li id="root2">
root2
</li>
<li id="root3">
root3
</li>
</ul>
</div>
我写了个jquery方法 想点击一个li的时候弹出id,这个li必须是包含ul的li 也就是说要包含子元素才行
(function($) {
$.fn.tree = function() {
var content = $(this).html();
$(this).find("li").each(function() {
if($(this).children("ul").length>0){
$(this).bind("click", function(evnet) {
alert(this.id);
evnet.stopPropagation();
});
}
});

};
})(jQuery)
但为什么每次点击id是second1、second2、first2或者first3的时候也会弹出来呢? 怎么改呢?
...全文
202 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
不朽之王 2011-04-07
  • 打赏
  • 举报
回复
把click事件定义在li的文字上,不要定义在整个li上
runer 2011-04-07
  • 打赏
  • 举报
回复
这样就行了。


<script type="text/javascript">
$(document).ready(function(){
$("li").click(function(e){
if($(this).children("ul").length>0){
alert($(this).attr("id"));
}
e.stopPropagation();
});
});
</script>
tfwin2 2011-04-07
  • 打赏
  • 举报
回复
(function($) {
$.fn.tree = function() {
var content = $(this).html();
$(this).find("li").each(function() {
if($(this).children("ul").length>0){ $(this).bind("click", function(evnet) {
alert(this.id);
evnet.stopPropagation();
});
}
});

将这行代码前,alert($(this).children("ul").length);
你会有所发现!
};
})(jQuery)
apache2007 2011-04-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 blue_helper_01 的回复:]
思路:
1.为这类li添加响应事件
2.在点击事件中判断被点击的li是否含有ul的子元素,如果有就显示id
[/Quote]

我的思路就是这个,但写出来不对啊,该怎么写??? 您能帮写个吗?
huangchbao 2011-04-07
  • 打赏
  • 举报
回复
你应该$("ul>li")给才对。。。
给你个例子、你自己研究吧!!!
--------------
<form>
<label>Name:</label>
<input name="name" />
<fieldset>
<label>Newsletter:</label>
<input name="newsletter" />
</fieldset>
</form>
<input name="none" />
--------------------

js :$("form > input")
------------------
结果:[ <input name="name" /> ]


blue_helper_01 2011-04-06
  • 打赏
  • 举报
回复
思路:
1.为这类li添加响应事件
2.在点击事件中判断被点击的li是否含有ul的子元素,如果有就显示id
apache2007 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sonaxh 的回复:]
在每一个你需要辨认的标签后面加个id 试试
[/Quote]

兄才能说的详细点吗? 怎么加个
春花儿 2011-04-06
  • 打赏
  • 举报
回复
在每一个你需要辨认的标签后面加个id 试试
加盐的咖啡666 2011-04-06
  • 打赏
  • 举报
回复
楼主,没看明白,能说的详细点吗?
apache2007 2011-04-06
  • 打赏
  • 举报
回复
自己顶一下

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧