我正在尝试使用jQuery的位置函数,并记录它返回正确值的对象:
var pos = $('.myObject').position();
console.log(pos); //works, with proper left and top properties visible in console
但是,当尝试访问对象中的左侧或顶部位置属性时,我得到一个“未定义”错误,这很奇怪,因为我可以看到它们正确地存储在控制台中的对象本身中。
var pos = $('.myObject').position();
console.log(pos.left); //doesn't work
这个问题的简单性真让我难过。不确定到底发生了什么。这个函数是在jQuery waypoints函数内部的一个处理程序中调用的,但我怀疑这有什么不同。
编辑:下面的完整代码。
$('.scrollPoint').waypoint({
handler: function(direction) {
var app = $(this).attr('app');
$('.activeApp').removeClass('activeApp');
$('.app[appID='+app+']').addClass('activeApp');
var posLeft = $('.activeApp').position();
console.log(posLeft); // shows proper object position in console
$('.appCaret').css("margin-left", posLeft.left+"px"); // error:'undefined' is not an object (evaluating 'posLeft.left')
}
});