0

クリックされたリンクを 3 つの異なる div でカウントするスクリプトを作成しようとしました。私のコードに何が問題なのか、いくつかメモを追加していただけますか。

JavaScript

window.onload = function () {
span = document.getElementById('span');
var sumcount = 0;
span.innerHTML = sumcount; // Записываем начальное значение

    document.body.onclick = function (e) {
    e = e || event;
    var target = e.target || e.srcElement;

    var countItem1 = 0,
        countItem2 = 0,
        countItem3 = 0;

    if (target.className == 'item1') {
        countItem1++;
        sumcount++;
        //здесь отсылаем новые данные на сервер, при удачном ответе обновляем содержимое span
        span.innerHTML = countItem1;
    }

    if (target.className == 'item2') {
        countItem2++;
        sumcount++;
        //здесь отсылаем новые данные на сервер, при удачном ответе обновляем содержимое span
        span.innerHTML = countItem2;
    }

    if (target.className == 'item3') {
        countItem3++;
        sumcount++;
        //здесь отсылаем новые данные на сервер, при удачном ответе обновляем содержимое span
        span.innerHTML = countItem3;
    }
}
}

コードのこの部分がわかりません。説明してもらえますか。慈悲

    document.body.onclick = function (e) {
    e = e || event;
    var target = e.target || e.srcElement;
4

2 に答える 2

0

JavaScript Kit はそれをうまく説明してくれました:

Event モデルは、IE と Firefox で異なる方法で実装されています。IE には、発生時にイベントの詳細をログに記録する明示的な window.event オブジェクト (つまり、onclick) がありますが、Firefox やその他の W3c 準拠のブラウザーでは、非明示的な Event オブジェクトがイベントに関連付けられた関数に自動的に渡されます。イベントに関する同様の情報を含むハンドラ。1

于 2013-05-29T20:33:01.027 に答える
0

これらのカウンターは、「sumcount」のようにハンドラー関数ので宣言する必要があります。

イベント ハンドラーの先頭のコードは、イベント参照をパラメーターとして渡さず、「target」ではなくイベント ターゲット プロパティ「srcElement」を呼び出す Internet Explorer に対応します。

于 2013-05-29T20:17:33.817 に答える