Jquery 获取屏幕上的元素水平位置

Jquery 获取屏幕上的元素水平位置,jquery,Jquery,我有这个菜单jquery功能: $("#text").click(function(evt) { $("#menu").css({ top: 45, left: evt.pageX }).toggle(); evt.stopPropagation(); }); 它工作正常,但是菜单在鼠标点击的正上方打开,如果我点击字母k(来自点击),它在k上方打开 我希望它始终打开并与上面的图片中的#text div显示在同一行: 我需要改变什么?有没

我有这个菜单jquery功能:

$("#text").click(function(evt) {
    $("#menu").css({
        top: 45,
        left: evt.pageX
    }).toggle();
    evt.stopPropagation();
});
它工作正常,但是菜单在鼠标点击的正上方打开,如果我点击字母k(来自点击),它在k上方打开

我希望它始终打开并与上面的图片中的#text div显示在同一行:

我需要改变什么?有没有办法把它修好


您应该使用
offset()
jq方法来获取和设置相关的
left
属性:

$("#text").click(function(evt) {
    $("#menu").css({
        top: 45, // or not hardcoded: $(this).offset().top + 45,
        left: $(this).offset().left
    }).toggle();
    evt.stopPropagation();
});

您应该使用
offset()
jq方法来获取和设置相关的
left
属性:

$("#text").click(function(evt) {
    $("#menu").css({
        top: 45, // or not hardcoded: $(this).offset().top + 45,
        left: $(this).offset().left
    }).toggle();
    evt.stopPropagation();
});

这对@A来说很容易。Wolff@RickJoe这是肯定的,希望你能接受它作为你提问的答案。@Jai-Thx感谢你的好话:)这对@A来说很容易。Wolff@RickJoe这是肯定的,希望你能接受它作为你所问问题的答案。@Jai Thx感谢你的好话:)