Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按div计算点击次数_Javascript - Fatal编程技术网

Javascript 按div计算点击次数

Javascript 按div计算点击次数,javascript,Javascript,我试图制作脚本来计算3个不同div中点击的链接。你能补充一下我的代码有什么问题吗 JavaScript window.onload = function () { span = document.getElementById('span'); var sumcount = 0; span.innerHTML = sumcount; // Записываем начальное значение document.body.onclick = function (e) { e

我试图制作脚本来计算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;

这些计数器应该在处理程序函数之外声明,就像“sumcount”一样


事件处理程序开头的代码用于处理Internet Explorer,它不将事件引用作为参数传递,并且调用事件目标属性“srcElement”而不是“target”。

JavaScript工具包很好地解释了这一点:

事件模型在IE和Firefox中的实现方式不同。在IE中,有一个显式的window.event对象记录事件发生时的任何详细信息(即:onclick),而在Firefox和其他兼容W3c的浏览器中,一个莫名其妙的事件对象会自动传递到与事件处理程序关联的函数中,该函数包含有关事件的类似信息


你说你不明白的部分是跨浏览器兼容代码。| |返回第一个定义的(真实的)备选方案。当完全相同的东西根据浏览器具有不同的属性名称时,它允许编写代码。在发布问题时,您应始终包括对代码错误或产生错误的描述,补充马修的评论:这是if(e.target){target=e.target;}else{target=e.srcElemet;}