Javascript 是否只有最后一项绑定了单击/悬停事件?
我是Javascript和HTML5的新手。我正在遍历一组名为requests的对象,并为它们创建div。我正在尝试这样做,如果有任何项目悬停在样式类更改上,如果单击它们,我将稍后调用一个函数,但现在只需要一个警报。只有最后一项得到它 我看过其他人有过类似的问题,但我看不出我错在哪里Javascript 是否只有最后一项绑定了单击/悬停事件?,javascript,jquery,Javascript,Jquery,我是Javascript和HTML5的新手。我正在遍历一组名为requests的对象,并为它们创建div。我正在尝试这样做,如果有任何项目悬停在样式类更改上,如果单击它们,我将稍后调用一个函数,但现在只需要一个警报。只有最后一项得到它 我看过其他人有过类似的问题,但我看不出我错在哪里 for (i= 0; i<reqs.length; i++) { var requestID = "request"+i; // Build t
for (i= 0; i<reqs.length; i++) {
var requestID = "request"+i;
// Build the DIV for each request
element.innerHTML += "<div id="+requestID+" class=request><img class=requestImage src=images/"
+reqs[i].image+" alt=Face /> "+reqs[i].name+"</div>";
var requestElement = $('#'+requestID);
requestElement.hover(
function() {
$(this).removeClass().addClass("requestHover");
},
function() {
$(this).removeClass().addClass("request");
}
);
requestElement.click(
// if the request is clicked, then alert me - testing
function() {
alert('Handler for .click() called.');
}
);
}// end for
for(i=0;i您可以在for循环之后分配事件侦听器,这或许可以解决您的问题:
for (...) {
}
$('div.request').hover( ... );
我会这样写的
for (i= 0; i<reqs.length; i++) {
var requestID = "request"+i;
// Build the DIV for each request
element.innerHTML += "<div id="+requestID+" class=request><img class=requestImage src=images/"
+reqs[i].image+" alt=Face /> "+reqs[i].name+"</div>";
}// end for
var requestElement = $(".request");
requestElement.hover(
function() {
$(this).removeClass().addClass("requestHover");
},
function() {
$(this).removeClass().addClass("request");
}
);
requestElement.click(
// if the request is clicked, then alert me - testing
function() {
alert('Handler for .click() called.');
}
);
for(i=0;iYou可能被一个闭包相关的bug咬了一口。请为这段代码提供更多的作用域(任何封闭函数?)。为了更好地理解,我尝试使用#request+i获取ID字段,这在语法上是否有什么错误。