0

加载页面后,div 的位置为 0,0。
但它的位置正确。如何在一开始就获得正确的位置?我为JFiddle做了一个例子,它显示了这个问题。单击按钮后,位置值是正确的。

<div data-role="page" id="homepage">

    <div data-role="header">
            <h1>Home</h1>

    </div><!-- /header -->

    <div data-role="content" id="homecontent">     
<p><a href="#page1">Page1</a></p>        
    </div><!-- /content -->

    <div data-role="footer">
            <h4>&nbsp;</h4>
    </div><!-- /footer -->

</div><!-- /page -->

<div data-role="page" id="page1">

    <div data-role="header">
            <h1>Page1</h1>
    </div><!-- /header -->

    <div data-role="content" id="page1content">      

    </div><!-- /content -->

    <div data-role="footer">
            <h4>&nbsp;</h4>
    </div><!-- /footer -->

</div><!-- /page -->

====

jQuery(document).ready(function(e) {
    initThis();
});    


function initThis() {

    $('#page1content').append('<div id="isodivi"></div>').trigger("create");
    $('#isodivi').height(100);
    $('#isodivi').width(600);
    $('#isodivi').css( "background-color", "lightgreen" );
    var test = $('#isodivi').position().left +" "+ $('#isodivi').position().top;
    $('#isodivi').html(test);
    $('#isodivi').append('<a href="#" data-role="button" id="button1">Click</a>').trigger("create");
}    

$('#button1').click(function() {
var test = $('#isodivi').position().left +" "+ $('#isodivi').position().top;
$('#isodivi').html(test);        
});
4

1 回答 1

0

这是一个工作版本:

http://jsfiddle.net/hA3Uz/1/

问题是在您未编辑的代码中,当 div 不存在时,将其位置div放入,尝试添加:test

alert(test);

在你的 initThis()函数中(在你给 赋值之后test),你会希望明白我的意思。

于 2013-05-28T15:39:45.327 回答