我的脚本出了问题。我有一个我的文件结构列表(所以这是由一个递归的PHP函数构建的,我不知道我有多少个子文件或子目录)。默认情况下,文件夹是隐藏的,当用户单击该文件夹时,第一个包含ul的文件将向下滑动。 问题是$('。folder')选择器选择子文件夹然后选择父文件夹,依此类推,因为每个文件夹都有相同的文件夹类。因此,当我单击打开的文件夹的文件夹时,单击的文件夹将打开,但父文件夹将关闭。我希望描述足够清楚。
以下是一些代码:
HTML:
<ul>
<li class="file">file1.txt</li>
<li class="folder">
folder1
<ul>
<li class="folder">
folder2
<ul>
<li class="file">fileA.txt</li>
<li class="file">fileB.txt</li>
</ul>
</li>
<li class="file">file1A.txt</li>
</ul>
</li>
<li class="file">file2.txt</file>
</ul>
JS:
$(document).ready(function() {
$('.folder').click(function() {
$(this).children('ul:first').slideToggle();
});
});
所以,当我点击folder2时,folder2的ul将向下滑动,但在它之后,folder1将向上滑动,因为$('。folder')集合中的folder2和folder1。
解决方案是什么?
感谢。
答案 0 :(得分:2)
$('.folder').click(function(e) {
$(this).children('ul:first').slideToggle();
e.stopPropagation();
return false;
});
尝试使用e.stopPropagation()
。它会阻止对PARENT执行操作。