Javascript 向下和向上滑动几次<;李>;元素同时存在
我现在真的被困在这里,只是想知道是否有人能想出一个简单的办法来解决我的问题。我有几个嵌套的Javascript 向下和向上滑动几次<;李>;元素同时存在,javascript,jquery,html-lists,slide,Javascript,Jquery,Html Lists,Slide,我现在真的被困在这里,只是想知道是否有人能想出一个简单的办法来解决我的问题。我有几个嵌套的项,每个和中都有一些 我希望发生以下情况: 每当我点击一个项目,它包含另一个时,它应该向下滑动并显示所有列表项目,同时关闭同一“嵌套级别”上的其他列表。我试图实现这一点,但我真的不想为每个可能的星座编写一些代码,我认为有一种更简单的方法 为了更好地理解: 不知何故,该示例不起作用,但如果您将内容复制到本地文件中,它就会起作用。我做了前三个列表,我希望所有的“孩子”列表都是这样。如果有人能帮我,我会非常感激的
项,每个和中都有一些
我希望发生以下情况:
每当我点击一个
项目,它包含另一个
时,它应该向下滑动并显示所有列表项目,同时关闭同一“嵌套级别”上的其他列表。我试图实现这一点,但我真的不想为每个可能的星座编写一些代码,我认为有一种更简单的方法
为了更好地理解:
不知何故,该示例不起作用,但如果您将内容复制到本地文件中,它就会起作用。我做了前三个列表,我希望所有的“孩子”列表都是这样。如果有人能帮我,我会非常感激的 你好!根据我对你问题的理解,我是这样做的: HTML标记
<ul>
<li>
<span>value 1</span>
<ul>
<li>
<span>inner value 1</span>
<ul>
<li>inner inner value 1</li>
<li>inner inner value 2</li>
<li>inner inner value 3</li>
</ul>
</li>
<li>
<span>inner value 2</span>
<ul>
<li>inner inner value 1</li>
<li>inner inner value 2</li>
<li>inner inner value 3</li>
</ul>
</li>
<li>
<span>inner value 3</span>
<ul>
<li>inner inner value 1</li>
<li>inner inner value 2</li>
<li>inner inner value 3</li>
</ul>
</li>
</ul>
</li>
<li>
<span>value 2</span>
<ul>
<li>inner value 1</li>
<li>inner value 2</li>
<li>inner value 3</li>
</ul>
</li>
<li>
<span>value 3</span>
<ul>
<li>inner value 1</li>
<li>inner value 2</li>
<li>inner value 3</li>
</ul>
</li>
</ul>
JQuery
$("ul > li").has("> ul").click(function(e) {
e.stopPropagation();
$(this).find("> ul").slideToggle();
$(this).siblings("li").find("> ul").slideUp();
});
$("ul > li").click(function(e) {
e.stopPropagation();
});
它在
jsFiddle
上不起作用,因为您没有选择jQuery
作为库。谢谢,您为我节省了很多工作。似乎我必须进一步研究JQuery。好吧,我不知道为什么,但我似乎无法创建一个与JSFIDLE相同的本地文件。我只是将所有内容复制到一个文件中,但它就是不起作用:首先,您从Google API调用jQuery库时返回了一个错误,表示它找不到您要的文件。您可以自己下载jQuery库,将其放在应用程序目录中,然后将该文件包含到应用程序中。其次,应该使用单独的
标记来包含jQuery库和另一对放置jQuery代码的标记。最后,将所有jQuery代码放在$(document).ready(function(){…})中
这样它们只在加载DOM时执行。
$("ul > li").has("> ul").click(function(e) {
e.stopPropagation();
$(this).find("> ul").slideToggle();
$(this).siblings("li").find("> ul").slideUp();
});
$("ul > li").click(function(e) {
e.stopPropagation();
});