当鼠标移动到列表项上时,在JQuery中使用Hover

时间:2010-02-28 03:47:11

标签: javascript jquery

你好,我有这个我正在处理的清单。当我将鼠标移到列表项上时,我想将列表项的边框颜色更改为红色,当我将鼠标移开时,它应该变回白色。这是我的HTML

<html> 
  <head> 
    <title>JQuery Problem 1</title> 
    <script type="text/javascript" src="jquery-1.4.min.js"></script> 
    <script type="text/javascript" src="problem1.js"></script> 
  </head> 
  <body> 
    <ol> 
      <li>Comp 250
        <ul> 
          <li>HTML</li> 
          <li>CSS</li> 
          <li>CGI</li> 
          <li>PHP</li> 
          <li>JavaScript</li> 
        </ul> 
      </li> 
      <li>Comp 345
        <ul> 
          <li>Objects and classes</li> 
          <li>Static and constant members</li> 
          <li>Operator overloading</li> 
          <li>Templates</li> 
          <li>Inheritance</li> 
          <li>Polymorphism</li> 
        </ul> 
      </li> 
      <li>Comp 431
        <ul> 
          <li>Perl language</li> 
          <li>File uploads and downloads</li> 
          <li>AJAX and JSON</li> 
          <li>Java Servlets</li> 
          <li>JSP</li> 
        </ul> 
      </li> 
    </ol> 
  </body> 
</html> 

这是我的jquery

$(document).ready(function()
{


    $("ol > li").css({margin: "1em", fontWeight: "bold"});
    $("ol li li").css({fontWeight: "normal"}); 


    $("li").hover(function()
        {
            $(this).css('border-color', 'red');         //switches color when on
        },
        function()
        {
            $(this).css('border-color', 'white')            //switches back when the mouse moves off
        })




});

1 个答案:

答案 0 :(得分:2)

除非您尚未指定边框宽度和样式,否则看起来是正确的。在这种情况下,没有什么可以显示颜色。

你可以这样做:

    $("li").hover(function()
        {
            $(this).css('border', '1px solid red'); 
        },
        function()
        {
            $(this).css('border', '1px solid white')
        });

或者在悬停之前设置初始边框:

$("ol > li").css({borderWidth:"1px", borderStyle:"solid", margin: "1em", fontWeight: "bold"});
$("ol li li").css({fontWeight: "normal"}); 

$("li").hover(function()
    {
        $(this).css('border-color', 'red');
    },
    function()
    {
        $(this).css('border-color', 'white')
    })