繁体   English   中英

在多个元素上制作 slideDown 和 slideUp 但只需点击一个特定的

[英]make a slideDown and slideUp on multiple elements but at the click of only one specific

我有这个 html 代码

    <div class="toolsLink">
        <h1>title</h1>
        <img class="downArrow" src="arrow.png alt="arrow_logo">
    </div>
    <ul>
        <li>prova</li>
        <li>prova</li>
        <li>prova</li>
        <li>prova</li>
    </ul>
    <div class="toolsLink">
        <h1>title</h1>
        <img class="downArrow" src="arrow.png alt="arrow_logo">
    </div>
    <ul>
        <li>prova</li>
        <li>prova</li>
        <li>prova</li>
        <li>prova</li>
    </ul> <!-- and many others the same -->

然后我有这个 javascript

 $(document).ready(function () {
   $('.downArrow').click(function () {
     $(this).parent().siblings('ul').slideToggle();
   });

 });

它可以工作,但如果我点击任何“.downArrow”。我希望它只适用于点击的“.downArrow”。 也就是说,对于单击的“.downArrow”,他必须将那个 ul 的切换器滑到他下方,而不是每个人。

查看您的 HTML 结构,您可以使用parent()next() jQuery function 来定位 UL。

您在代码中所做的是: go 到父级(div)然后获取所有兄弟姐妹 UL。

你需要的是:

  • Go 到父母,
  • 然后,取最近的 UL(在您的情况下为下一个)

 $(document).ready(function () { $('.downArrow').click(function () { $(this).parent().next().slideToggle(); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="toolsLink"> <h1>title</h1> <img class="downArrow" src="arrow.png" alt="arrow_logo"> </div> <ul> <li>prova</li> <li>prova</li> <li>prova</li> <li>prova</li> </ul> <div class="toolsLink"> <h1>title</h1> <img class="downArrow" src="arrow.png" alt="arrow_logo"> </div> <ul> <li>prova</li> <li>prova</li> <li>prova</li> <li>prova</li> </ul> <.-- and many others the same --> <div class="toolsLink"> <h1>title</h1> <img class="downArrow" src="arrow.png" alt="arrow_logo"> </div> <ul> <li>prova</li> <li>prova</li> <li>prova</li> <li>prova</li> </ul> <.-- and many others the same --> <div class="toolsLink"> <h1>title</h1> <img class="downArrow" src="arrow.png" alt="arrow_logo"> </div> <ul> <li>prova</li> <li>prova</li> <li>prova</li> <li>prova</li> </ul> <!-- and many others the same --> <div class="toolsLink"> <h1>title</h1> <img class="downArrow" src="arrow.png" alt="arrow_logo"> </div> <ul> <li>prova</li> <li>prova</li> <li>prova</li> <li>prova</li> </ul> <!-- and many others the same --> <div class="toolsLink"> <h1>title</h1> <img class="downArrow" src="arrow.png" alt="arrow_logo"> </div> <ul> <li>prova</li> <li>prova</li> <li>prova</li> <li>prova</li> </ul> <!-- and many others the same -->

这是因为当您调用parent()时,两个 ul 都被视为其兄弟姐妹。 您可以使用.first()方法来获取选择器遇到的 ul 的第一个实例。 所以你的 slideToggle 方法看起来像$(this).parent().siblings('ul').first().slideToggle();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM