Jquery 每个 <li> 应用鼠标悬停背景

标签 jquery html-lists mouseover each background-color

似乎无法让它工作:

$(function() {
  $("#side").$("li").each(function() {
    $(this).mouseover(function() {
      $(this).backgroundColor = "#c0c0c0";
    });
  });
});

要迭代的 HTML 片段:

<div id='side'>
   <ul>
      <li>A</li>
      <li>B</li>
      <li>C</li>
   </ul>
</div>

最佳答案

试试这个:

$(function() {
    $("#side").children("li").each(function() {
        $(this).mouseover(function() {
            $(this).css ("background-Color", "#c0c0c0");
        });
        $(this).mouseout(function () {
            $(this).css("background-Color", "#FFF"); 
        });
    });
});​

我看到的问题是:

  1. 您用于 ul/li 的选择器不正确。您需要使用 child 方法。
  2. 更改 css 在 jquery 中与在 javascript 中不同。请改用 css 方法。
  3. 确保当鼠标离开时将颜色更改回默认值(在本例中为白色)。否则它将永远是灰色的(即使鼠标离开)。

JSFiddle:http://jsfiddle.net/L8hsz/
希望有帮助。

编辑:如果您担心背景颜色,您可以执行类似以下操作:

$(function() {
    $("#side").children("li").each(function() {
        $(this).data("DefaultBGColor", $(this).css("background-color"));
        $(this).mouseover(function() {
            $(this).css ("background-Color", "#c0c0c0");
        });
        $(this).mouseout(function () {
            $(this).css("background-Color", $(this).data("DefaultBGColor")); 
        });
    });
});​

关于Jquery 每个 <li> 应用鼠标悬停背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9660493/

相关文章:

jquery - 如何设置 2 个垂直 jQuery UI Slider handle 的样式?

javascript - 使用 Javascript 获取 HTML 字符串的属性列表

java - 无法使用 java selenium webdriver 将鼠标悬停在 headless 的 Xvfb 中

jQuery制作一个类来一次改变一个背景

jquery - 如何使用 select 将两行合二为一?

jquery - 无限卷轴在 Tumblr 上用砖石打破

php - 在 PHP 中将所有行元素打印为树

javascript - 揭示li元素 "radially"

jquery - 通过 CSS :hover (or JS if need be) 隐藏/显示内容

c# - 如何在任何打开的窗口中获取鼠标下的文本