javascript - div 没有加载到正确的位置

标签 javascript jquery

您好,如果未经身份验证的用户单击,我正在尝试加载链接/按钮旁边的 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 符合预期。

最佳答案

您设置位置的元素是否将其 position 属性设置为 absoluterelative

如果没有,尝试设置它。

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

此外,您更新后的 HTML 问题没有显示具有 "unauthenticated" 类的元素。

不确定这是否是问题的一部分,但是 click 被分配给 $(".unauthenticated")

关于javascript - div 没有加载到正确的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4798973/

相关文章:

javascript - 通过使用 jquery 单击表的行,将行的信息显示到右侧 div

javascript - 循环: images land on the last field only

javascript - 如何在 react-navigation navigationOptions 上设置功能?

javascript - 一个用于压平嵌套对象的衬垫

javascript:删除对正在运行的代码的引用

c# - 将图像放在 HTML 5 中的 div 中

php - 如何使用 Laravel + Jquery Ajax 从文本区域获取值到文本区域?

javascript - 如何向 slider 添加加号/减号按钮

javascript - 使用json数据创建数组

javascript - 当重新初始化 Jquery jScrollPane 时,它​​会回到顶部。为什么?