Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-在悬停孙辈或曾孙辈上,控制父项';s风格递归_Jquery - Fatal编程技术网

jQuery-在悬停孙辈或曾孙辈上,控制父项';s风格递归

jQuery-在悬停孙辈或曾孙辈上,控制父项';s风格递归,jquery,Jquery,我试图建立一个最低4级菜单(无限)。我的愿望是使用jQuery在菜单上创建一个通用的递归操作。当我悬停一个子元素时,父元素的高度会增加,同样的结果我也希望悬停任何孙子或曾孙子时,相同的父元素保持高度增加,而不是孙子或曾孙子 我试过这个: 看来我需要别的东西而不是 $(this.parent().parent().parent().find(“a:first”) 这不正确 任何帮助都将不胜感激 根据您的DOM结构,您需要爬树到一个祖先(悬停项的容器)并找到作为其同级的锚(导致此容器显示的更高级别菜

我试图建立一个最低4级菜单(无限)。我的愿望是使用jQuery在菜单上创建一个通用的递归操作。当我悬停一个子元素时,父元素的高度会增加,同样的结果我也希望悬停任何孙子或曾孙子时,相同的父元素保持高度增加,而不是孙子或曾孙子

我试过这个:

看来我需要别的东西而不是

$(this.parent().parent().parent().find(“a:first”)

这不正确


任何帮助都将不胜感激

根据您的DOM结构,您需要爬树到一个
祖先(悬停项的容器)并找到作为其同级的锚(导致此容器显示的更高级别菜单项),其转换为:

$(this).closest("ul").siblings("a")

有了这个变化。

从@Jon那里得到了一些很好的指导(非常感谢!)之后,我尝试了和之类的函数。仍然没有找到预期的结果,但我有可能知道递归父计数是如何工作的。我保留了
.parents()
的方式,并添加了
.last()
。下一个代码实现了这一点:

$(this).parents('ul > li').last().find("a:first").attr('style', 'height:55px;line-height:55px;');
这是重要的部分:

$(this).parents('ul > li').last().find("a:first")

默认情况下,事件最多传播到父元素。为什么不直接将事件添加到父级或祖父母级?因为我将有更多的“父级”元素(在第一级),并且我希望仅在我悬停的父级的子级上增加高度,而不是在所有父级元素上。哇!一个非常好的便签。唯一的问题是,在孙子元素悬停时,子元素3的高度也会增加,而在曾孙元素悬停时,孙子元素3的高度也会增加。在当前示例中,我只想增加父级#2。当然,所有这些都是动态的,考虑在“未来”添加更多的家长。@GrávujMiklósHenrich:也许我不太明白你到底想要实现什么,这种行为在我看来是合乎逻辑的。但在任何情况下都不难适应。我只希望更改父元素,而不希望更改子元素或孙子元素。仅在示例代码中使用
Parent#2