2016-11-30 8 views
-1

私はajaxを初めて使いました。jQueryのload()メソッドを初めて使用しています。 下の例は動作しません。 doSomething()内部変数が定義されていない私は、このようにやっている(反復的である)、それは動作しますが、そうロードメソッド以外の変数にアクセスする方法は?

var x = jQuery("#div1 a"); // x is used in different parts of the code, not only for the doSomething function 

jQuery('.test').load(homeUrl, function() { 
    doSomething(); 
}; 

function doSomething() { 
    x.css('background-color', 'yellow'); 
} 

を(非同期であるためのを私は推測呼び出す):

function doSomething() { 
    var x = jQuery("#div1 a"); 
    x.css('background-color', 'yellow'); 
} 

しかし、私は希望変数を扱う良い方法があるのか​​、私が何か間違っていることを知っている。

+2

'this.x' - 真剣に? –

+0

質問からはそれほど明確ではありませんが、グローバルな名前空間を汚染する可能性があります(http://stackoverflow.com/questions/8862665/what-does-it-mean-global-namespace-would-be-汚染された#13352212) –

+0

@ sid-mありがとう:)私は他の関数で 'x'変数を使用しているので、それをグローバルオブジェクトで定義するのは意味があります。 – viery365

答えて

1

あなたはとてもようにdoSomethingの機能にxを渡すことができます。

VARのx = jQueryの( "#のDIV1のA");

jQuery('.test').load(homeUrl, function() { 
    doSomething(x); 
}; 

function doSomething(x) { 
    x.css('background-color', 'yellow'); 
} 
+0

ありがとうございました!:)これは良い考えですが、実際にはその関数の中にはすでに定義済みの変数がたくさんあり、この状況ではたくさんのパラメータを使用する必要があります。 – viery365

関連する問題