jquery - 使用jquery定位下拉菜单

标签 jquery html css

我正在尝试创建一个下拉菜单,我需要检测子菜单的正确位置。这就是我用 jquery 缩进它的方式:

function changeSubcat(catid){
    var position = $('#menuparent_'+catid).position();
    position.left = position.left - 180;
    $('#menu_'+catid).css("left", position.left);
}

真正的问题是它只适用于我工作过的大小的窗口,很明显,所以我需要优化它以在其他维度上工作。首先我想我应该使用另一种方法而不是 position() ,但我还没有找到更好的方法。很抱歉没有提供 html 代码,但它有点毛茸茸。

最佳答案

不明白为什么要同时使用margin left和left来定位元素。仅使用

function changeSubcat(catid) {
    var position = $('#menuparent_'+catid).position();
    // maybe add a little something to position.top to make the menus not overlap
    $('#menu_'+catid).position(position);
}

应该可以。有时我发现 position() 不起作用,您也可以尝试 offset()。在极少数情况下,我也遇到了 position()offset() 的问题,在这种情况下,您可以使用 $('#menuparent_'+catid )[0].offsetTop$('#menuparent_'+catid)[0].offsetLeft 获取和设置位置。

编辑:顺便说一句,您不必解析 position.left 或 right,因为它们已经是整数。

关于jquery - 使用jquery定位下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6660497/

相关文章:

javascript - Materializecss scrollspy throttle 不工作

javascript - 带 anchor 的位置 href 不起作用

javascript - '$ ("#elementId").change( )' is not working and ' $(document).on ("change" "elementId")' 正在工作

jquery 不会点击新生成的类,尝试委托(delegate)

css - 可见性随 css 不工作而改变

css - 定义颜色属性的多个类的优先级由声明顺序而不是规范顺序设置

javascript - 如何从一个链接打开 2 个不同的链接,一个在同一窗口中,另一个在新窗口中?

javascript - 如何使用 jQuery 禁用 onmousedown 功能?

javascript - 使用 paperjs 翻译 Canvas 中的坐标系

javascript - 禁用/启用右键单击 html 正文的特定部分