1

请看一下这段代码。我选择了所有具有相同 id 的元素,但是,只有第一个元素改变颜色,当您将鼠标悬停在其他元素上时,它们的颜色保持不变。不确定我是否以正确的方式做这件事。请提供建议。

生活演示在这里-> http://jsfiddle.net/bwoodlt/2ReCe/

    $(document).ready(function(){
        $("#ade").live("hover", function(){
            $("#ade").each(function (){
            $(this).toggleClass('highlight');
           // alert("In here..")
        });

        });
    });

更新:

多谢你们!我确实使用了类选择器,它在悬停时选择了所有元素!我真正想要的是它在悬停时选择每个元素,然后当我继续下一个元素时,它应该改变颜色,而不是选择所有元素并在一个项目悬停时改变它们的颜色!

4

4 回答 4

2

在 HTML中拥有多个具有给定 ID 的元素是非法的。$('#ade') 只使用getElementById并返回一个元素。

在这种情况下使用一个类。$('.ade')将返回所有具有 class 的元素ade

于 2013-05-02T14:46:40.560 回答
1

您应该只在一个元素上使用 ID。jQuery 只会选择给定 ID 的第一个元素。将一个类用于多个。

于 2013-05-02T14:46:39.230 回答
1

如前所述,ID 必须是唯一的。此外,您的代码无论如何都没有意义。当您将鼠标悬停在任何 div 上时,您将遍历所有其他 div,并将突出显示的类应用于每个 div。您肯定只想将突出显示的类添加到悬停的 div 中吗?在这种情况下,删除 .each()。并且不要使用 .live(),它已被弃用。如果需要,请使用 .hover(),或者如果需要委托事件,请使用 .on()。

$(".ade").hover(function(){
    $(this).toggleClass('highlight');
});

jsFiddle:http: //jsfiddle.net/2ReCe/2/

于 2013-05-02T14:51:10.760 回答
0

ID 是唯一的,一个页面上应该只存在一个具有特定 ID 的元素,而 jQuery 在使用 ID 选择器时只会选择一个元素。如果您想将多个元素组合在一起并选择它们,我建议您创建一个类并使用该选择器。

$('.test')
于 2013-05-02T14:47:47.593 回答