$(document).ready( function () {
$('<div id="navigation_blob"></div>').css({
width: 0,
height: $('#navigation li:first a').height() + 10
}).appendTo('#navigation');
$('#navigation a').hover(
function () {
$('#navigation_blob').animate(
{
width:10,
left: $(this).position().left //这里的$(this)为什么指向了外部调用hover的那个$('#navigation a'),
//而不是直接调用animate()这个方法本身的$('#navigation_blob')这个对象呢?
},
{
duration: 2000,
easing: 'easeOutElastic',
queue: false
}
);
},
感觉像是$(this) 跳到外层去找元素了,this不是应该谁调用了这个方法,this就指向那个对象吗?
animate方法里面传入的是一个参数,这个参数是一个对象,对象里的this哪来的,当然是他当前的上下文里的this咯,这个this不是写在animate的方法里面,只是作为一个参数传入animate方法,这个参数的当前上下文是在$('#navigation_blob')这个对象调用的方法里面,所以当然指向$('#navigation_blob')