好的,我已经完成了建议的q / a,但他们似乎没有清楚地回答这个问题。
我想减少混乱,并且一次将一个事件处理程序分配给多个图像,而不是单独分配。这是具有重复代码的当前代码:
$(document).ready(function(){
$("#div1 img:eq(0)").mouseenter(function(){
$(this).css("border","1px solid green");
})
$("#div1 img:eq(1)").mouseenter(function(){
$(this).css("border","1px solid green);
})
$("#div1 img:eq(2)").mouseenter(function(){
$(this).css("border","1px solid green");
})
})
在简单的javascript中我可能做过类似的事情:
div1imgs=documentGetElementById("div1").getElementsByTagName("img");
for(i=0; i<div1imgs.length; i++) {
div1imgs[i].onmouseover=function(){this.style.border="1px solid green"}
使用它很诱人,但我进入jquery并且更喜欢保持它jquery。在jquery中是否有一些等效的解决方案,希望更简单的是同时为一组图像分配事件处理程序?还使用循环,否则?
答案 0 :(得分:2)
根据您的vanilla js版本,它将是:
$("#div1 img").mouseenter(function () {
$(this).css("border","1px solid green");
});
注意,当您使用jQuery将事件绑定到多个元素时,它将自动遍历每个单独的元素以执行绑定。