1

私はこのコードを持っています:

function displayMenu (newGal, newSub) {
    curGal = newGal;
    curSub = newSub;
    if (curGal == null) {
        curGal = "main";
    };
    arrayL = curGal.length;
    if (curImg == null) {
        curImg = 0;
    };
    if (curSub == null) {
        curSub = 0;
    };
    prevImg = curImg - 1;
    if (prevImg == null || prevImg < 0) {
        prevImg = arrayL;
    };
    nextImg = curImg + 1;
    document.getElementById('img1').style.display = "none";
};

そして、styleプロパティがnull. このコードは、以前のものから大幅に取り壊されています。これは、 of -を使用してsを選択するためにターゲットするforために使用することになっていたループの一部でした。その後、それを分解して、別の行ですべての単一の-を手動でターゲットにしようとしましたが、壊れ続けます。はい、- div は HTML にあります。元のループは次のようになります。i"img" + idividimg09img09img09for

for (i = 0; i < array.L; i++) {
    var tempButton = "img" + i;
    document.getElementById(tempButton).style.display = "none";
};

styleプロパティが である理由と、nullどうすれば修正できますか?

4

2 に答える 2

11
window.onload = displayMenu('main', 0);

これはあなたの問題です。代わりにこれを使用してください:

window.onload = function() {displayMenu('main', 0);}

コードでは、displayMenuが呼び出され、その呼び出しの戻り値が に割り当てられwindow.onloadます。要素が追加さwindow.onloadれる前に割り当てているため、これは失敗します。imgX

ソリューションでは、代わりに関数リテラルを割り当て、window.onload呼び出されたときに を実行しdisplayMenuます。要素がページに配置されているため、機能するようになりました。

于 2012-07-08T01:20:18.483 に答える
1

あなたのjsFiddleでは、関数displayMenu()が2回定義されているため、機能しなくなります。

于 2012-07-08T01:19:16.643 に答える