【问题标题】:Javascript: variable.onclick instead of window.onclick?Javascript:variable.onclick 而不是 window.onclick?
【发布时间】:2013-09-28 01:44:24
【问题描述】:

您好,当我单击我的任何一个 div 时,我正试图让一个变量递增一。

如果我通常单击页面或窗口,则此代码适用:

var click = 0;
window.onclick = function () {
click++;

console.log(click);
}

但它只能在我单击容器内的 36 个按钮之一时起作用。

我尝试用连接到我的 div“按钮”的函数替换“窗口”,但没有成功。

我正在尝试做的一个例子是:

var click = 0;
myFunction.onclick = function () {
click++;

console.log(click);
}

这是我的功能:

var imgArray = [], []; 
function onClickCard(image)
{
image.src=imgArray[parseInt(image.name.substring(0, 1)) - 1]           [parseInt(image.name.substring(1, 2)) - 1];
}

【问题讨论】:

  • 您需要将对 onclick 的调用作为其属性之一放在 div 内部。
  • @harmonickey,请不要建议使用内联脚本。使用点击处理程序更好。

标签: variables onclick


【解决方案1】:
  1. 在元素上使用 jquery click 函数。
  2. 如果你不想使用 jquery,试试这个:

    document.onclick = 函数(事件){ 变种目标=事件.目标; if (target.nodeName == "BUTTON") { alert("按钮被点击"); } };

  3. 按照上面 cmets 中的建议,直接在元素定义内单击添加。

【讨论】:

    【解决方案2】:

    如果你想使用纯 Javascript,使用这个:

    var click = 0;
    window.onload = function () {
        var buttons = document.getElementById('container').querySelectorAll('div.button');
        console.log(buttons);
        for (i = 0; i < buttons.length; i++) {
            buttons[i].onclick = function () {
                click++;
                document.getElementById('result').innerHTML = click;
            }
        }
    }
    

    演示here

    在这个演示中,我假设你的容器有一个 ID #container,你的按钮是 div 元素,类 .button

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 2011-04-20
      相关资源
      最近更新 更多