jQuery悬停功能不适用于所有div

时间:2010-11-22 23:06:42

标签: jquery html hover

我来自德国,所以请耐心等待我的英语:D

我在jQuery中处理悬停功能,以更改页面上某些div的背景颜色。 当我将鼠标悬停在它上面时,问题不在于每个div都会起作用。

 $(document).ready(function(){
  $('#book').hover(function(){
   $(this).css('background', '#dfdfdf');
  }, function(){
   $(this).css('background', '#eee');
  });
 });

我页面上的第一个div绝对没问题。但当我将鼠标悬停在它上面时,秒div不会做任何事情。出了什么问题:D

谢谢!

3 个答案:

答案 0 :(得分:4)

那是因为你复制了你的div的ID。根据定义,ID应该是唯一的。尝试为每个div分配一个“book”类并绑定hover,如下所示:

$('.book').hover(function(){...

请参阅规范:http://www.w3.org/TR/html4/struct/global.html#h-7.5.2

相关摘录:

  

id = 名称 [CS]

     

此属性为其指定名称   元件。此名称在a中必须是唯一的   文档。

答案 1 :(得分:3)

您正在使用#book分配悬停。

但是id应该是唯一的,jQuery会考虑这一点,因此它只将事件处理程序应用于带有id book的第一个元素。

改用类。

答案 2 :(得分:0)

您需要引用具有不同ID(在页面上应该是唯一的)或类别的多个DIV。所以将您的<DIV id='book'更改为<DIV class='book'$('#book')更改为$('.book')