我正在尝试将弹出式div放在下面:
<div style="display:none;height:200px;width:200px;border:3px solid green;" id="popup">Hi</div>
基于另一个div的点击。
我在文档.ready
上运行它$('div#d').bind('click', function (event) {
var offset = $(this).offset();
$('#popup').css('left',offset.left);
$('#popup').css('top',offset.top);
$('#popup').css('display','inline');
});
但上面甚至不会显示div
答案 0 :(得分:17)
问题在于offset()没有返回正确的鼠标位置,请尝试使用event.pageX和event.pageY:
$(document).ready(function(){
$('div#d').bind('click', function (event) {
$('#popup').css('left',event.pageX); // <<< use pageX and pageY
$('#popup').css('top',event.pageY);
$('#popup').css('display','inline');
$("#popup").css("position", "absolute"); // <<< also make it absolute!
});
});
请参阅here。
答案 1 :(得分:1)
尝试将position: absolute
添加到您的div中。确保它不在另一个具有相对位置的div中。
<div style="position: absolute; display:none;height:200px;width:200px;border:3px solid green;" id="popup">Hi</div>
左上角仅适用于relative
,absolute
或fixed
定位的元素。