帮忙写一个点击展开菜单,其他菜单收起的JS

JavaScript012

帮忙写一个点击展开菜单,其他菜单收起的JS,第1张

<!DOCTYPE html>

<html>

  <head>

<meta http-equiv="Content-Type" content="text/html charset=UTF-8">

<script class="jquery library" src="/js/sandbox/jquery/jquery-1.8.2.min.js" type="text/javascript"></script>

<title>

RunJS 演示代码

</title>

<script>

jQuery(function($){

$("ul>li>a").click(function(){

$(this).next("ul").toggle().closest("li").siblings("li").children("ul").hide()

}).next("ul").hide()

})

</script>

  </head>

<body>

    <ul>

<li>

<a>

一级菜单

</a>

<ul>

<li>

隐藏的二级菜单项

</li>

<li>

隐藏的二级菜单项

</li>

<li>

隐藏的二级菜单项

</li>

</ul>

</li>

<li>

<a>

一级菜单

</a>

<ul>

<li>

隐藏的二级菜单项

</li>

<li>

隐藏的二级菜单项

</li>

<li>

隐藏的二级菜单项

</li>

</ul>

</li>

<li>

<a>

一级菜单

</a>

<ul>

<li>

隐藏的二级菜单项

</li>

<li>

隐藏的二级菜单项

</li>

<li>

隐藏的二级菜单项

</li>

</ul>

</li>

</ul>

  </body>

</html>

原来是这个"展开",我还以为是字数过长的“展开”,白写了一个。还要工作,如果没人写有空了给你写一个。(能用jquery么?)

/******************************************************************************************************

不上CSDN,不知道你说的是什么,现写一个,jquery版,使用前请包涵jquery库。

/*

* 展开

* 第一个参数是想要缩略的段落的jquery object

* 第二个是缩略后的长度类型是int

*/

function span($obj,len)

{

var h=$obj.html()

if(h.length>len)//长度超过规定长度就把后边隐藏

$obj.html(h.substr(0,len)+"<span class='span'>展开更多</span><span class='hide'>"+h.substr(len)+"</span>")

}

/*

* 折叠

* 参数是折叠按钮的jquery object

*/

function coll($o)

{

$o.hide()

var $p=$o.parents(".collapsible")

console.log($p)

$p.find(".hide").hide()

$p.find(".span").show()

}

$(function(){

span($(".collapsible"),10)//这里以.collapsible为例,如果长度超过10个字就把后边的隐藏

$(".span").click(function(){//展开

var $h=$(this).next(".hide")

$(this).hide()

$h.show()

$h.append("<span class='coll'>折叠</span>")

$(".coll").click(function(){

coll($(this))//折叠

})

})

})

给你举个例子:

<script language="javascript">

function show_div(){

var obj_div=document.getElementById("starlist")

obj_div.style.display=(obj_div.style.display=='none')?'block':'none'

}

function hide_div(){

var obj_div=document.getElementById("starlist")

obj_div.style.display=(obj_div.style.display=='none')?'block':'none'

}

</script>

<a href="javascript:show_div()" >显示/展开</a>

<div id="starlist">

内容<br/>

内容<br/>

内容<br/>

内容<br/>

</div>

这样就可以实现

追问

用jQuery实现,该怎么实现?就是不能弹出的那种,就要一个点击了之后就在下方显示的那种,谢谢!

回答

<!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/htmlcharset=gbk" />

<title>StripingTable</title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

<script type="text/javascript">

<!--

$(document).ready(function(){ })

function changeDisplay(){

var helloDivObj = $("#helloDiv")

var buttonObj = $("#btnDisplay")

var val = buttonObj.attr("value")

if(val=="隐藏"){

helloDivObj.hide()

buttonObj.attr("value","显示")

}else{

helloDivObj.show()

buttonObj.attr("value","隐藏")

}

}

-->

</script>

</head>

<body>

<input id="btnDisplay" type="button" value="隐藏" onclick="changeDisplay()"/>

<div id="helloDiv">

Hello,everyone<p></p>

Hello,everytwo<p></p>

Hello,everythree<p></p>

</div>

</bdoy>

</html>