我試圖跟蹤動畫元素的位置,有兩個按鈕;一到了移動元素,其他的向下移動,並且每個應打印在新的位置後moving..here是代碼:jQuery獲取元素的更新位置
<html>
<head>
<style>
div {
position:absolute;
background-color:#abc;
left:50px;
top :50px;
width:90px;
height:90px;
margin:5px;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
$("#up").click(function(){
$(".block").animate({"top": "-=50px"}, "slow");
top = $(".block").position().top;
left = $(".block").position().left;
$("#position").html("X: "+left+" , Y:"+top) ;
});
$("#down").click(function(){
$(".block").animate({"top": "+=50px"}, "slow");
top = $(".block").position().top;
left = $(".block").position().left;
$("#position").html("X: "+left+" , Y:"+top) ;
});
});
</script>
</head>
<body>
<button id="down">v</button> <button id="up">^</button>
<div class="block"></div><br/>
<p id="position"></p>
</body>
</html>
,因爲我想,我會得到相同的結果這是行不通的對於每一步:X: 50 , Y:[object Window]
如何解決這個問題?是我使用的函數position().left
和position().top
是否有權獲取元素的X和Y?
嘗試[偏移](http://api.jquery.com/offset/)而不是位置,並切換到'點擊()因爲'click()'(這實際上是對'bind()'的調用)[is deprecated](http://api.jquery.com/bind/) – acconrad 2012-04-24 02:42:50
on()而不是點擊不起作用「點擊後沒有動作」,offset()給出了相同的結果,除了左值改變:'X:55,Y:[object Window]' – 2012-04-24 02:50:41
我懷疑你使用的是格式'$ ('#down')。on('click'嘗試使用'$(document).on('click','#down',看看是否有幫助。 – acconrad 2012-04-24 02:52:45