2

すっごく、私はJSの問題を抱えています。私はWeb開発にかなり慣れていないので、JSで何が間違っているのか完全にはわかりません。

//create script for #mainHeading focus @ pageload -- heading 1
    window.onload = function() {
        var mainHeading = document.getElementById("mainHeading");
        mainHeading.style.textShadow = '0px 0px 0px #fff'
    }

//create script for #subHeading focus @ pageload -- heading 2
    window.onload = function() {
        var subHeading = document.getElementById("subHeading");
        subHeading.style.textShadow = '0px 0px 0px #fff'
    }

したがって、基本的には、最初の見出しの関数を、ページの読み込み時に「フォーカス」するように記述しました。次に、同じ機能を持つ 2 つ目の見出しを追加することにしました。ページを読み込むと、両方ではなく、2 番目の見出しのみが読み込まれます。

どうしてこれなの??

4

4 に答える 4

7

最初の関数を上書きしているためです。そのようなプロパティを設定しないでください...addEventListener代わりにまたは同等のものを使用してください:

window.addEventListener("load", function () {
    // First event handler
});
window.addEventListener("load", function () {
    // Second event handler
});

このメソッドを使用すると、必要な数のイベント ハンドラーを登録できます。ただし、非常に古いバージョンの Internet Explorer ではサポートされていないため、機能を検出してattachEventそれらの古い IE バージョンで使用する必要がある場合があります。

現在、プロパティの値を設定しているだけです。事実上同等の次のコードを考えてみましょう。

var obj = {};
obj.x = 10;
obj.x = 20;
console.log(obj.x); // 20
于 2013-03-31T15:20:58.817 に答える
3

あなたはonload機能を置き換えています。

正しい解決策は、 を使用してイベント リスナーを追加するaddEventListenerことです。それらは追加的です。

window.addEventListener('load', function1);
window.addEventListener('load', function2);
于 2013-03-31T15:20:57.903 に答える