1

我的脚本有问题。我有我的文件结构列表(所以这是由递归 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();
  });
});

因此,当我单击文件夹 2 时,文件夹 2 的 ul 会向下滑动,但之后文件夹 1 会向上滑动,因为文件夹 2 和文件夹 1 都在 $('.folder') 的集合中。

解决办法是什么?

谢谢。

4

1 回答 1

2
$('.folder').click(function(e) {
    $(this).children('ul:first').slideToggle();
    e.stopPropagation();
    return false;
});

尝试使用e.stopPropagation(). 它可以防止对 PARENT 执行操作。

工作小提琴

于 2013-02-02T14:15:33.540 回答