javascript - 使用 li 和 dl 与 jquery 进行级联下拉菜单

标签 javascript jquery html

我在常见问题解答中使用 <dl> 提出了一系列问题。我想使用 <ul> 将它们放入更高级别的类别和<li>将隐藏 <dl> 的标签除非单击它,否则其功能与我的常见问题解答当前的工作方式相同。我正在努力完成这项工作,因为我不擅长 JavaScript。

https://jsfiddle.net/pberard2002/agdrwjno/

如有任何帮助,我们将不胜感激。

我尝试添加<a>标签到 <li>元素,然后将 JS 附加到

 $('.accordion > li > dt > a').click(function()

但这并不是一个成功的举动。

最佳答案

以下内容适用于嵌套元素。

它首先隐藏所有元素,然后将事件监听器附加到所有后代a 元素并切换相应的 Accordion 。

Updated Example

$allPanels = $('.accordion > .accordion, .accordion > dl > dd').hide();

$('.accordion a').on('click', function(e) {
  var $target = $(e.target).next('.accordion').length ? $(e.target).next('.accordion') : $(e.target).parent().next();

  $allPanels.not($(this).closest('.accordion')).slideUp();
  $target[$target.is(':visible') ? 'slideUp' : 'slideDown']();
  e.preventDefault();
});

关于javascript - 使用 li 和 dl 与 jquery 进行级联下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34340308/

相关文章:

html - CSS:当 Accordion 向下时,如何阻止水平导航链接在 float 购物车中闪耀?

html - 背景图像高度和宽度在 IE11 上不起作用

html - 可以创建没有 href 属性的 anchor 吗?

javascript - 合并 OnMouseUp/Down 功能?

php - 动态加载包含javascript的内容

javascript - 使用 $(document).ready() 将 js 分解为文件,但保持范围

javascript - 带有非常简单 slider 的多个 slider

javascript - SVG 仅在 safari 中悬停时调整大小

javascript - in querySelector : how to get the first and get the last elements? 在dom中使用什么遍历顺序?

jQuery FullCalendar 获取事件优化