0

私はまだ JavaScript と Jquery にかなり慣れていませんが、これに何時間も苦労してきたので、誰かが助けてくれれば本当に感謝しています。

私は、より大きなプラグイン関数の一部である関数を持っています (誰かが精通していれば、Gaya の QueryLoader2)。私が見ている関数には、ページに読み込まれているアイテムのパーセンテージ値を取得する部分があります。

var completeImageLoading = function () {
    qLdone++;
    var percentage = (qLdone / qLimageCounter) * 100;

    if (qLoptions.percentage == true) {
        $(qLpercentage).text(Math.ceil(percentage) + "%");
    }

    if (qLdone == qLimageCounter) {
        destroyQueryLoader();
    }
}

「var percent」の部分は、グローバルにする必要がある部分であるため、パーセンテージの数値は、この関数の完全に外側の別の関数 (実際には別の Javascript ファイル内) で使用できます。「var」を削除しようとしましたが、うまくいきません。

誰かが助けてくれれば、本当に感謝します!ありがとう

4

3 に答える 3

1

関数の外に置く:

var percentage;

関数の中に入れます (いいえvar):

percentage = (qLdone / qLimageCounter) * 100;

基本的に、JavaScript では、関数と同じ場所で宣言されたローカル変数は、その関数内で (読み取りと書き込みの両方で) 使用できます。このようなローカル変数を使用する関数をクロージャーと呼びます。

于 2012-07-28T03:20:23.827 に答える
0

これを試して

var percentage;

var completeImageLoading = function () {
    qLdone++;
    percentage = (qLdone / qLimageCounter) * 100;

    if (qLoptions.percentage == true) {
        $(qLpercentage).text(Math.ceil(percentage) + "%");
    }

    if (qLdone == qLimageCounter) {
        destroyQueryLoader();
    }
}
于 2012-07-28T03:21:59.430 に答える
0

スクリプトに関する詳細情報をお送りいただければ、より簡単にお手伝いできますが、とにかく試してみます。
まず、グローバル変数が未定義の戻り値に対して何か間違ったことをしています。

このhttp://jsfiddle.net/WyShw/3/を見てください。変数が定義されており (場所は関係ありません)、値を返しています。変数を呼び出す前に関数 (completeImageLoading()) を呼び出しているかどうかを確認しました。この場合、変数を定義する必要はなく、関数 completeImageLoading() を呼び出すときに定義されているためです。関数内で呼び出さない場合に備えて、デフォルト値で定義しました。

于 2012-07-28T04:10:03.100 に答える