Javascript div未加载到正确的位置

Javascript div未加载到正确的位置,javascript,jquery,Javascript,Jquery,嗨,如果未经验证的用户单击,我正在尝试加载链接/按钮旁边的div 我有以下资料: $(function () { $(".unauthenticated").click(function () { ShowMessage($(this).attr("id"), "#unauthenticated-div") }); function ShowMessage(clickedItemId, divId) { clickedItem = $

嗨,如果未经验证的用户单击,我正在尝试加载链接/按钮旁边的div

我有以下资料:

$(function () {

    $(".unauthenticated").click(function () {
        ShowMessage($(this).attr("id"), "#unauthenticated-div")
    });

    function ShowMessage(clickedItemId, divId) {

        clickedItem = $("#" + clickedItemId);
        var pos = clickedItem.offset();
        var width = clickedItem.width();

        $(divId).css({
            "left": pos.left + width + 10,
            "top": pos.top + 10
        }).show();
    }
});

<div id="unauthenticated-div" title="Please Login" style="display: none;">
    <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;">
    </span>You must <a href="#" id="login-link">login</a>or <a href="/Account/Register/">Register</a>to do this</p>
</div>

它显示了div,但不在单击的链接旁边。当我逐步浏览代码时,pos和width与预期一致。

只有当div是position:relative时,left和top才有意义,如果没有,则仅相对于最里面的相对位置或绝对封闭div或主体。使用Firebug或IE Developer工具栏检查…

如果div是position:relative,则左侧和顶部仅在最里面的位置相对或绝对封闭div或主体(如果没有)时才有意义。检查Firebug或IE开发者工具栏…

设置位置的元素是否将其位置属性设置为绝对或相对

如果没有,请尝试设置它

    $(divId).css({
        "left": pos.left + width + 10,
        "top": pos.top + 10,
        "position":"absolute"
    }).show();
另外,您用HTML更新的问题不会显示类未经身份验证的元素


不确定这是否是问题的一部分,但单击被分配给$。未经验证。

设置位置的元素是否将其位置属性设置为绝对或相对

如果没有,请尝试设置它

    $(divId).css({
        "left": pos.left + width + 10,
        "top": pos.top + 10,
        "position":"absolute"
    }).show();
另外,您用HTML更新的问题不会显示类未经身份验证的元素


不确定这是否是问题的一部分,但单击被分配到$。未经验证。

请参阅patrick的答案以设置绝对位置。顺便说一句,最好在第一个参数中传递对象

$(".unauthenticated").click(function () {
    ShowMessage($(this), "#unauthenticated-div")
});


请参见patrick的答案,设置一个绝对位置。顺便说一句,最好在第一个参数中传递对象

$(".unauthenticated").click(function () {
    ShowMessage($(this), "#unauthenticated-div")
});


你需要用div来显示代码,否则很难想象。你需要用div来显示代码,否则很难想象。