私が混乱しているのは、$(this)が '#navigation_blob'オブジェクトではなく#navigation aオブジェクトを指している理由です。明確にするために、$(これ)が何をするのか知っています。私はちょうどこの例のスコープについて混乱しています。
ありがとうございます!それが呼び出されたコンテキストに
$('#navigation a').hover(function() {
// Mouse over function
$('#navigation_blob').animate(
{width: $(this).width() + 10, left: $(this).position().left},
{duration: 'slow', easing: 'easeOutElastic', queue: false}
);
}, function() {
// Mouse out function
var leftPosition = $('#navigation li:first a').position().left;
$('#navigation_blob').animate(
{width:'hide'},
{duration:'slow', easing: 'easeOutCirc', queue:false}
).animate({left: leftPosition}, 'slow');
});
ええ、私はそれを取得しますが、コンテキスト自体は#navigation_blobではありませんか?それはオブジェクトを返しますか?私は内部関数が*これが何を参照しているのかを無視してはいけないのでしょうか? – Eugene
ええ、それは上書きされません。単に新しい範囲を設定するからです(javascript変数は関数のスコープになります)。内部関数の 'this'は親関数で' this'をオーバーライドせずに 'navigation_blob'を参照します。親 'this 'にアクセスしたい場合は、クロージャーが必要です:IN parent:' var self = this; 'IN内部関数:' $(self); //ナビゲーションは ' – Mrchief
ありがとう!それはそれをクリア=) – Eugene