急找jQuery或JavaScript高手,解决一个问题.

来源:百度知道 编辑:UC知道 时间:2024/07/04 21:30:52
下面的第一部分是css,其次是jQuery的代码,最后是html的,
就一个ul导航吧,鼠标点击一下就能显示他的子元素,
========
我希望单击其中一个打开子元素的同时,并且要让他的所有兄弟元素的子元素也收起来.简单点说:我就是希望点击其中一个其他的菜单都给我收拢.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>多级菜单</title>
<style type="text/css">
<!--
ul{
font-size:12px;
font-family:Arial, Helvetica, sans-serif;
}
li{
padding:1px; margin:0px;
}
-->
</style>
<script language="javascript" src="jquery.min.js"></script>
<script language="javascript">
$(function(){
$("li:has(ul)").click(function(e){
if(this==e.target){
$(this).children().toggle();

<script language="javascript">
var show=null;
$(function(){
$("li:has(ul)").click(function(e){
if(this==e.target){
if($(this).children().is(":hidden")){
try{show.hide();}catch(e){}
}
$(this).children().toggle();
show = $(this).children();
$(this).css("list-style-image",($(this).children().is(":hidden")?"url(plus.gif)":"url(minus.gif)"))
}
return false; //避免不必要的事件混绕
}).css("cursor","pointer").click(); //加载时触发点击事件

//对于没有子项的菜单,统一设置
$("li:not(:has(ul))").css({
"cursor":"default",
"list-style-image":"none"
});
});

</script>

在$(this).children().toggle();
这一句后加:(其实在if (this == e.target) 中的任何位置都可以)
$('li:has(ul)',this).css('list-style-image',