使用JQuery在Hover上更改文本

时间:2013-08-18 16:14:08

标签: javascript jquery html

我正在尝试将导航元素从“ME”更改为< ME>在使用JQuery悬停时。这是我正在尝试的: JSBin example

然而,它永久隐藏了原始文本。有没有人知道我做错了什么? (我一般都是JQuery / JS的新手)

3 个答案:

答案 0 :(得分:5)

no js required的经典案例,你可以使用CSS伪类,特别是:

  • :hover
  • :before
  • :after

Example

li a:before {
    content: "<";
    display: none;
}

li a:after {
    content: ">";
    display: none;
}

li a:hover:before {
    display: inline;
}

li a:hover:after {
    display: inline;
}

答案 1 :(得分:3)

DEMO

试试这个。我已经编辑了你的代码

$( function() {
  var text;
  $("#topnav li ").hover(
    function () {
      text=$(this).find("a").text();
     $(this).find("a").text($(this).attr('full'));
    },
    function () {
       $(this).find("a").text(text);
    }
  );
});

希望这会有所帮助 谢谢

答案 2 :(得分:1)

我同意@Nirazul,如果可以,请寻求纯粹的CSS解决方案。

如果你不能,请记住你是:

  1. 获取li
  2. 的属性的值a
  3. 将所选li内部链接的文本替换为其内容
  4. 在handlerOut上撤消操作
  5. 所以:

    $( function() { 
      $("#topnav li").hover(
        function () {
          var myLi = $(this);
          myLi.attr('small', $('a', myLi).text());
          $('a', myLi).text(myLi.attr('full'));
        },
        function () {
           var myLi = $(this);
           $('a',myLi).text(myLi.attr('small'));
        }
      );
    });
    

    更新了example