javascript - 如何在 jQuery 中使用循环自动绑定(bind)多个事件处理程序

标签 javascript jquery

我正在开发一个模拟棋盘的简单应用程序。因此我有一张有 64 个方格的 table 。我想通过编写一个循环的函数来绑定(bind)每个方 block 的事件处理程序,而不是写出 64 次。编辑:请注意,我希望处理程序返回一个数值来指示单击了哪个 div。我不需要处理程序来返回 div 的内容。这是一个简化版本,给出了两个可点击的 div:

<div id="div0">A box</div>
<div id="div1">Another box</div>
<div id="say"></div> 

和 JavaScript 代码:

$("#say").append("Which div are you going to click? ");

function clicky() {
    var i = 0;
    while (i < 2) {
        $("#div" + i).on("click", function () {
            $("#say").append("div" + i);
        });
        i++;
    }

}

clicky();

这是jsfiddle

该函数几乎可以工作,也就是说,它绑定(bind)到两个 div,但它绑定(bind)了相同(错误)的处理程序到它们。不知道如何解决这个问题。

最佳答案

使用公共(public)类。然后你可以使用Class Selector (“.class”)绑定(bind)事件

HTML

<div class='myDiv' id="div0">div0</div>
<div class='myDiv' id="div1">div1</div>
<div id="say"></div>

脚本

$("#say").append("Which div are you going to click? ");
$(".myDiv").on("click", function () {
    $("#say").append(this.id);
});

DEMO

关于javascript - 如何在 jQuery 中使用循环自动绑定(bind)多个事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27655032/

相关文章:

通过一维的 JavaScript 二维数组迭代不起作用

javascript - 如何计算总和等于给定值的所有数字数组元素组合?

javascript - 我希望能够获取所有 `<b></b> 的内容

jquery - 如何获取jquery数据表选定行的行号

jquery - 如何使此容器响应(移动/小型设备)- Bootstrap 3

javascript - 具有向下钻取的 Highcharts 列导致主图表中的数据标签模糊,向下钻取的列除外

javascript - 从返回的查询数组中获取对象的值 (Parse.com + Node.js)

javascript - Google Analytics 和哈希/ anchor 不起作用

javascript - JQuery 在悬停时向后旋转两侧(3D)

jquery - 下一个 sibling 选择器的逆