jQuery SlideToggle 嵌套 ul li

标签 jquery css nested html-lists

我最初可以正常工作,但通过 W3C 验证器运行它,修复了错误,现在它无法正常工作。

我设置了 jsfiddle

本质上,它是一堆嵌套的 ul 被用作下拉菜单,挑出标题,当单独单击时,会显示嵌套 ul 中包含的信息。

但是由于将 ul 正确嵌套在 li 内部,因此无法正常工作,因此尝试了像 Children/siblings/next 这样的选择器 - 一切都无济于事。这并不是说它们不起作用,只是我不够了解,无法让它们起作用(显然!)。

此代码使所有列表同时滑动切换,但我想单独控制它们。

$(function(){
  $("ul.featureListings").hide();

  $(".featuresHeading").click(function() {
    $('ul.featureListings').slideToggle(300);
    return false;
  });
});

我确信使用类似的东西:

$(this).next('.featureListings').slideToggle(300);

应该可以,但我一生都无法正确地弄清楚。我猜这是因为它是嵌套的,而且我没有正确定位它,但我的知识和截止日期都是有限的。

如何相应地定位适当的 ul?想知道是否有人可以帮助阐明并帮助我理解为什么这不起作用?

最佳答案

试试这个:

$(function(){
  $("ul.featureListings").hide();

  $(".featuresHeading").click(function() {
    $(this).next("li").children('ul.featureListings').slideToggle(300);
    return false;
  });
});

您只需要以正确的方式在 DOM 中移动。您想要移动到下一个 li (.next("li")),然后移动到它的子节点之一 (.children('ul.featureListings'))并在那里触发slideToggle。

关于jQuery SlideToggle 嵌套 ul li,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14835396/

相关文章:

html - textarea 的 CSS 使 textarea 高度跨越第一行的高度?

python - 将 methodcaller 和 attrgetter 与排序相结合

javascript - 如何通过存储在索引处的嵌套对象属性对对象数组进行排序?

Java hashmap 不允许调用 get 方法

javascript - 如何查找特定网站已在浏览器中打开或未打开?

javascript - jQuery .click on element with element behind stacking 错误?

html - Safari iOS 8.4.1 中的仅 CSS 菜单悬停问题

Jquery显示一个结果多次返回?

javascript - 如何显示结束日期和截止日期 31-03

javascript - 如何使用不同页面上的多个 Owl Carousel 来更改按钮的位置