Javascript this.offset不是单击函数中的函数
错误在于Javascript this.offset不是单击函数中的函数,javascript,jquery,html,css,Javascript,Jquery,Html,Css,错误在于\此偏移量不是一个函数。我将此记录到控制台,并且是我单击的元素,所以我不明白为什么这不起作用 $('.item')。单击(函数(e){ var_this=这个; var topx=_this.offset().top; var leftx=_this.offset().left; var moveArea=$('#replace').offset().top; var moveLeft=$('#replace').offset().left; var moveUp=topx-移动区域-
\此偏移量不是一个函数。我将此记录到控制台,并且是我单击的
元素,所以我不明白为什么这不起作用
$('.item')。单击(函数(e){
var_this=这个;
var topx=_this.offset().top;
var leftx=_this.offset().left;
var moveArea=$('#replace').offset().top;
var moveLeft=$('#replace').offset().left;
var moveUp=topx-移动区域-50;
_this.css('position','absolute').css('top',moveUp).css('zIndex',50).css('left',leftx);
_这是动画({
前50名,
左:向左移动
}, 300)
});代码>
#更换{
高度:50px;
宽度:100px;
背景颜色:绿色;
}
#名单{
高度:200px;
溢出y:滚动;
}
.项目{
高度:50px;
宽度:100px;
背景颜色:蓝色;
}
替换这个
试验
试验
试验
事件处理程序中的this
(因此也就是this
)指的是一个doElement,它没有作为jQuery一部分的offset()
方法。要解决此问题,可以使用$(this)
创建jQuery对象:
另请注意,在对同一方法的多个调用中,使用提供给单个css()
调用的对象。替换这两行:
var topx = _this.offset().top;
var leftx = _this.offset().left;
与:
As.offset()
是一个jquery函数,而\u这个
是一个DOM元素
同样,对于你的.css
行,你必须再次将\u这个
包装在$(…)
中,因为\u这个
是一个DOM元素,**不是jQuery对象。使用$(这个)而不是这个。你的答案是一个救星。谢谢,是的。这是一个很好的答案。
var topx = _this.offset().top;
var leftx = _this.offset().left;
var topx = _this.offsetTop;
var leftx = _this.offsetLeft;