我尝试将带有jquery的css应用于div元素,但它不接受$(this)参数。我想知道为什么我不能使用$(this)作为div元素的引用。
blabla.css({
'top': $(window).width()/2-$(this).width()/2+'px',
'left': $(window).width()/2-$(this).width()/2+'px'
});
错误:未捕获宽度:对象#没有方法‘TypeError’
提前谢谢..
ps:我知道在这里我可以在$()
中使用一个直接的id调用,但是我希望this
可以工作。
发布于 2012-03-12 18:15:26
如果$(this)
是blabla
,为什么不使用blabla.width()
而不是$(this).width()
发布于 2012-03-12 18:08:24
请注意,您不是在运行回调,而是将一个对象传递给.css
。因此,this
不是指blabla
元素,而是指调用包含此代码的函数时定义的当前上下文(这可能会有所不同)。这个上下文没有.width
,然后你就会得到一个错误。
您必须显式引用宽度,如blabla.width()
中所示
发布于 2012-03-12 18:14:30
你可能会试着
$("#blabla").css('top',function(){
alert($(this).width());
});
https://stackoverflow.com/questions/9665028
复制相似问题