ページロード時に変数を設定しました
$(document).ready(function() {
var inv_count = 3;
});
ただし、関数内でその変数を参照しようとすると、機能しません。
function blah(a,b) {
alert (inv_count);
}
どうしてこれなの?そして、どうすればそれを回避できますか?
(新人はこちら)
ページロード時に変数を設定しました
$(document).ready(function() {
var inv_count = 3;
});
ただし、関数内でその変数を参照しようとすると、機能しません。
function blah(a,b) {
alert (inv_count);
}
どうしてこれなの?そして、どうすればそれを回避できますか?
(新人はこちら)
スコープの問題があります。javascript を大幅に改善できるため、それについて少し読むことをお勧めしますが、2 つの一般的な方法で解決できます。
var inv_count; //you declare your variable in a global scope, it's not very good practice
$(document).ready(function() {
inv_count = 3;
});
function blah(a,b) {
alert (inv_count);
}
また
$(document).ready(function() {
var inv_count = 3;
function blah(a,b) {
alert (inv_count);
}
//you declare everything inside the scope of jQuery, if you want to acess blah outside use:
//window.blah = blah;
});
また、クロージャーがどのように機能するのかわからない場合は、クロージャーについて読むことをお勧めします。
関数内で変数を宣言すると、変数名はその関数のスコープ外ではアクセスできなくなります。宣言を関数の外に移動します。
var inv_count;
$(document).ready(function() {
inv_count = 3;
});