我使用 jQuery .position() 定位一个元素。但是,在我显示动画并在 ajax 调用后取消它后,元素的位置被重置。
function showStatusMsg(msg) {
var $statusEl = $('#userActMenuStatus');
if ($statusEl.length == 0) {
$statusEl = $('<span id="userActMenuStatus">' + msg + '</span>');
$('#app_nav').append($statusEl);
$statusEl.position({
my: "right center",
at: "left center",
of: $('#userActMenu'),
collision: "fit"
}).css('left', parseInt($statusEl.css('left')) - 10);
} else {
$statusEl.html(msg);
}
}
$('#button1').click(function () {
showStatusMsg('saving...');
$('#userActMenuStatus').stop(true).show('drop', {
direction: 'up'
}, 'slow').effect('pulsate', {
'times': 100
}, 1500);
$.ajax({
type: 'post',
url: '/echo/json/',
data: 'save=data'
}).success(function (result) {
$('#userActMenuStatus').stop(true).hide('drop', {
direction: 'up'
}, 'slow');
});
});
这是怎么回事?
免责声明:我必须使用 jQuery v1.5.2 和 jQuery UI 1.8.12
最佳答案
您期望 position
表现如何? http://api.jquery.com/position/
https://github.com/jquery/jquery/blob/master/src/offset.js#L90
在我看来它只是一个阅读器。
关于javascript - jQuery 元素位置在显示和停止动画后重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16901369/