The error is that _this.offset
is not a function. I logged this to the console and it was the element I clicked on, so I am confused why
this
(and hence _this
) inside your event handler refers to a DOMElement which doesn't have the offset()
method as that's part of jQuery. To fix this you can create a jQuery object using $(this)
:
$('.item').click(function(e) {
var $this = $(this);
var topx = $this.offset().top;
var leftx = $this.offset().left;
var moveArea = $('#replace').offset().top;
var moveLeft = $('#replace').offset().left;
var moveUp = topx - moveArea - 50;
$this.css({
'position': 'absolute',
'top': moveUp,
'zIndex': 50,
'left': leftx
}).animate({
top: -50,
left: moveLeft
}, 300)
});
Also note the use of the object provided to a single css()
call over multiple calls to the same method.