Javascript 如果第n个子项为1或2,则右对齐菜单

Javascript 如果第n个子项为1或2,则右对齐菜单,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在使用一个超大菜单,它显示左侧或右侧的下拉菜单。到目前为止,我无法正确计算offset.left,并且它的分辨率不同 所以我想在右边显示第一个和第二个下拉菜单,在左边显示其余的,但我不知道如何使第n个子元素在if语句上工作 简单提琴示例 我的巨型菜单样本显示如下 mega菜单的实际小提琴示例 我将感谢帮助使这个脚本显示菜单的正确 现在这个代码不能正常工作 if (($(this).offset().left) + 200 > $('.menu-wrapper').width()) {

我正在使用一个超大菜单,它显示左侧或右侧的下拉菜单。到目前为止,我无法正确计算offset.left,并且它的分辨率不同

所以我想在右边显示第一个和第二个下拉菜单,在左边显示其余的,但我不知道如何使第n个子元素在if语句上工作

简单提琴示例

我的巨型菜单样本显示如下 mega菜单的实际小提琴示例

我将感谢帮助使这个脚本显示菜单的正确

现在这个代码不能正常工作

if (($(this).offset().left) + 200 > $('.menu-wrapper').width()) {
    $(this).find(".dropdown").addClass("dropdown-last");
}
由于这个原因,我想到了在右边显示第一个,第二个下拉菜单和左边的其余部分,这将避免上述代码计算的自动检测

我不知道如何写这段代码

   if($( "li:nth-child(1)" ) == true || "li:nth-child(2)" == true ))
   {
     alert('show dd menu on right side of parent menu');  
   }
否则 { 警报(“在父菜单左侧显示dd菜单”);

}

我只是决定使用下面的jquery,使其能够处理任何意外的结果

这个简单的添加一个
下拉列表last
类,它将子菜单对齐到文本的左侧。下面是一个例子&你可以用它来让它以你想要的方式工作

$("#menu").on("mouseenter", ":nth-child(4)", function () { $(this).find(".dropdown").addClass("dropdown-last"); });
$("#menu").on("mouseenter", ":nth-child(5)", function () { $(this).find(".dropdown").addClass("dropdown-last"); });
$("#menu").on("mouseenter", ":nth-child(6)", function () { $(this).find(".dropdown").addClass("dropdown-last"); });
如下所示,jQuery在不同分辨率的屏幕上给了我意想不到的结果

    if (($(this).offset().left) + 200 > $('.menu-wrapper').width()) {
        $(this).find(".dropdown").addClass("dropdown-last");
    }

并不是所有的菜单都会有下拉菜单。这是故意的吗?我也不确定Javascript应该实现什么。这个问题的答案似乎很简单:“使用
:第n个孩子(-n+2)
”,但我不知道这是否符合您的要求。