Jquery绑定dblclick事件到多个元素

jquery bind dblclick event to multiple elements

本文关键字:元素 事件 绑定 dblclick Jquery      更新时间:2023-09-26

我试图将dblclick事件绑定到我正在迭代的nodeList中的div。下面是代码:

var elems = document.getElementsByClassName("click");
currentLocation = elems[0].id;
for (var i=0; i<elems.length; i++){
    $(elems[i]).dblclick(function() {
            if((elems[i].id) != currentLocation){
                badAnswer = true;
                alert(badAnswer);
            }
        });
    }

currentLocation是一个全局变量,设置为节点列表的第一个元素id。badAnswer也是一个全局布尔值,设置为false。如果双击了与currentLocation全局变量以外的元素匹配的元素,badAnswer将被设置为true。

目前我收到一个未定义的错误,我试图通过在事件处理程序中创建一个局部变量来补救。这似乎也不起作用,双击时badAnswer总是为真,因为elementID总是等于最后一个元素的ID值。

有更好的方法吗?

是的,有一个更好的方法:

var currentLocation = $(".click")[0].id;
$(".click").on("dblclick", function() {
    if (this.id != currentLocation) {
        badAnswer = true;
    }
});
$('.click').dblClick(function() {
    if(this.id != currentLocation) {
        ...
    }
});

你已经在使用jQuery了,所以你不妨使用选择器…容易得多!