未使用jQuery正确定位弹出窗口

未使用jQuery正确定位弹出窗口,jquery,Jquery,我使用e.pageX/e.pageY使弹出窗口正常工作,但随后我注意到,如果我单击页面右侧或底部附近的某个位置,弹出窗口就会离开页面。我不知道如何使用位置以及它将如何自动调整,但我一定是出了什么问题。有人能帮我定位我的弹出窗口,并保持在页面上,如果它离开了页面时,它打开 下面是一个例子,说明了我正在尝试做什么 var hoverTimer; var mouseOverText = "This is normally a looked up value. Hard-coded here so I

我使用e.pageX/e.pageY使弹出窗口正常工作,但随后我注意到,如果我单击页面右侧或底部附近的某个位置,弹出窗口就会离开页面。我不知道如何使用位置以及它将如何自动调整,但我一定是出了什么问题。有人能帮我定位我的弹出窗口,并保持在页面上,如果它离开了页面时,它打开

下面是一个例子,说明了我正在尝试做什么

var hoverTimer;

var mouseOverText = "This is normally a looked up value. Hard-coded here so
I can illustrate the problem. I'd like the popup to show up to the right
 bottom of the mouse unless near the right or bottom of the page. I thought
 position automatically did that."

$(".lookup").hover(
    function (e) {
        hoverTimer = setTimeout(function () {
            showPopupText(e, mouseOverText, "#4aacc5");
        }, 100); // Changed wait time for fiddle.
    },

    function (e) {    // Supposed to clear the popup when the mouse moves
    away. Works on my laptop...not sure why not in fiddle, so not concerned
    about this.
        clearTimeout(hoverTimer);
});

function showPopupText(e, mouseOverText, bkgColor) {
    var html = '<div id="titlePopup" class="tooltip info" 
        style="background-color:' + bkgColor + '; ' + 'display: block;">' 
        + '<span id="temp">' + mouseOverText + '</span>' + '</div>';

    timerPopup = setTimeout(function () {
        $('div#titlePopup').remove();

        $('body').append(html);

        var htmlPopup = $("#titlePopup");

        $(htmlPopup).position({
            my: "right bottom",
            at: "right bottom",
            of: "event"  // Tried different values...none seem to work.
        });

    }, 100);
}
var-hoverTimer;
var mouseOverText=“这通常是一个查找值。此处硬编码,因此
我可以说明这个问题。我希望弹出窗口显示在右边
鼠标底部,除非靠近页面的右侧或底部。我想
位置自动做到了这一点。”
$(“.lookup”)。悬停(
职能(e){
hoverTimer=setTimeout(函数(){
showPopupText(e,鼠标右键“#4aacc5”);
},100);//更改了小提琴的等待时间。
},
函数(e){//当鼠标移动时,应清除弹出窗口
离开。在我的笔记本电脑上工作…不知道为什么不用小提琴,所以不关心
关于这个。
clearTimeout(悬停计时器);
});
函数showPopupText(e、mouseOverText、bkgColor){
var html=''
+''+mouseOverText+''+'';
timerPopup=setTimeout(函数(){
$('div#titlepoup')。删除();
$('body').append(html);
var htmlPopup=$(“#titlePopup”);
$(htmlPopup).位置({
我的:“右下角”,
在“右下角”,
of:“事件”//尝试了不同的值…似乎都不起作用。
});
}, 100);
}

您可以在页面上显示块元素,显示为:无属性。然后在jquery函数上

$(".lookup").hover(function(){
    $("#yourBlockId").toggle();
}, function(){
   $("#yourBlockId").toggle();
})
至于把你的积木放在哪里,我会建议你放在你想要的地方

<div style="position: relative; width: 100%;">
    <div id="yourBlockId" style="position: absolute; right: 0; display: none;">BLOCK CONTENT</div>
</div>

您可以在页面上使用
显示的block元素:none属性。然后在jquery函数上

$(".lookup").hover(function(){
    $("#yourBlockId").toggle();
}, function(){
   $("#yourBlockId").toggle();
})
至于把你的积木放在哪里,我会建议你放在你想要的地方

<div style="position: relative; width: 100%;">
    <div id="yourBlockId" style="position: absolute; right: 0; display: none;">BLOCK CONTENT</div>
</div>

谢谢,但我不认为这完全符合我的要求。我希望弹出窗口位于鼠标的右侧/底部。如果我点击了页面右下角附近的一个元素,我希望弹出窗口是左上角…这看起来像是位置应该做的事情。我在问题和评论中注意到我说“点击”。我想说“悬停”。如果我将鼠标悬停在元素上,你也可以为元素设置一个最大宽度和高度,并使用它们来计算它可以拥有的最大位置OK。我希望使用position,但我会尝试一下,并让您知道。block.height()或width未定义。还在工作。谢谢,但我不认为这完全符合我的要求。我希望弹出窗口位于鼠标的右侧/底部。如果我点击了页面右下角附近的一个元素,我希望弹出窗口是左上角…这看起来像是位置应该做的事情。我在问题和评论中注意到我说“点击”。我想说“悬停”。如果我将鼠标悬停在元素上,你也可以为元素设置一个最大宽度和高度,并使用它们来计算它可以拥有的最大位置OK。我希望使用position,但我会尝试一下,并让您知道。block.height()或width未定义。还在工作。谢谢,但我不认为这完全符合我的要求。我希望弹出窗口位于鼠标的右侧/底部。如果我点击了页面右下角附近的一个元素,我希望弹出窗口是左上角…这看起来像是位置应该做的事情。我在问题和评论中注意到我说“点击”。我想说“悬停”。如果我将鼠标悬停在元素上,你也可以为元素设置一个最大宽度和高度,并使用它们来计算它可以拥有的最大位置OK。我希望使用position,但我会尝试一下,并让您知道。block.height()或width未定义。还在工作。