【问题标题】:jQuery hover function doesn't work for all div'sjQuery 悬停功能不适用于所有 div
【发布时间】:2010-11-22 23:06:41
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

    标签: jquery html hover


    【解决方案1】:

    那是因为您复制了 div 的 ID。根据定义,ID 应该是唯一的。尝试为每个 div 分配一个“书”类并像这样绑定hover

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

    查看规范:http://www.w3.org/TR/html4/struct/global.html#h-7.5.2

    相关摘录:

    id = 姓名 [CS]

    此属性为 元素。此名称在 文件。

    【讨论】:

      【解决方案2】:

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

      但 id 应该是唯一的,jQuery 考虑到了这一点,所以它只将事件处理程序应用于第一个 id 为 book 的元素。

      改用类。

      【讨论】:

      • 太棒了。工作正常!谢谢=)
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-14
        • 2011-01-16
        • 1970-01-01
        • 2018-06-12
        • 1970-01-01
        • 2020-03-20
        • 1970-01-01
        相关资源
        最近更新 更多