在jQuery中检索div的顶部和左侧偏移量

时间:2011-10-18 17:31:26

标签: jquery position offset

要获得当前div的顶部和左侧,请点击此处。

<div class="channel" onclick="highlight_channel();">
    <p>Pax TV, 8am (Lima, Peru, in Spanish)</p>
</div>

function highlight_channel() {
    var highlight_top = $(this).position().top;
    var highlight_left = $(this).position().left;
    alert(highlight_top);
    var clear_highlight = document.getElementById("highlight");
    clear_highlight.parentElement.removeChild(clear_highlight); 
    $("#page").append('<div id="highlight" class="channel selected" style="top:'+highlight_top+'left='+highlight_left+'></div>');
}

这似乎没有得到信息。

4 个答案:

答案 0 :(得分:1)

尝试offset()而不是位置()。

答案 1 :(得分:1)

试试这个:

function highlight_channel() {
    offs = $(this).offset(); // <-- caching for better performance.
    var highlight_top = offs.top;
    var highlight_left = offs.left;
    alert(highlight_top);
    $("#highlight").replaceWith('<div id="highlight" class="channel selected" style="top:'+highlight_top+'left='+highlight_left+'></div>'); // <-- replacing #highlight the jQuery way
}

答案 2 :(得分:1)

如果您已经在使用jQuery,为什么不使用jQuery click方法:

$('.channel').click(function() {
    var highlight_top = $(this).position().top;
    var highlight_left = $(this).position().left;
    alert(highlight_top);
    var clear_highlight = document.getElementById("highlight");
    clear_highlight.parentElement.removeChild(clear_highlight); 
    $("#page").append('<div id="highlight" class="channel selected" style="top:'+highlight_top+'left='+highlight_left+'></div>');

});

http://jsfiddle.net/ZbnZ9/

答案 3 :(得分:0)

你错过了“;”我认为。

$("#page").append('<div id="highlight" class="channel selected" style="top:'+highlight_top+'; left='+highlight_left+'; ></div>');
祝你好运。