mouseleave()返回到mouseenter()之前

时间:2016-04-14 15:23:15

标签: jquery html css

无论如何都要将元素$("p")返回到应用mouseenter()方法之前的确切颜色?或者,我是否需要知道mouseenter()之前的颜色,然后将该颜色应用于mouseleave()?我希望它返回到应用mouseleave()之前的颜色...除了知道它在mouseenter()之前有哪种颜色之外还有其他方式吗?

Jquery代码(我不想将其设置为蓝色,我想将其设置为mouseenter()之前的颜色):

$(document).ready(function () {
    $("p").mouseenter(function () {
    $(this).css("color","yellow")
    })
    .mouseleave(function () {
        $(this).css("color","blue")
    })
   })

5 个答案:

答案 0 :(得分:2)

只需将颜色设置为空字符串,它将使用您最初设置的值:

.mouseleave(function() {
  $(this).css("color", "")
})

<强> jsFiddle example

答案 1 :(得分:2)

使用课程。在mouseEnter上添加类$(this).addClass("the_new_color")并在mouseLeave上删除它。 $(this).removeClass("the_new_color")。该css类应该!important覆盖初始颜色。

答案 2 :(得分:1)

最好的方法是使用.toggle(),那么你只需要放置“new”类,而不是使用mousenter()和mouseleave(),只需使用hover()。

  {
  "username": [
    "This field is required."
  ],
  "password": [
    "This field is required."
  ]
}

并在您的css文件中:

$( "p" ).hover(function() {

     $( this ).toggleClass("blue");

});

答案 3 :(得分:1)

首先,如果可以的话,你真的应该使用jQuery的.blue { color: blue; } 方法。它更一致,更易于阅读,更好的“练习”。您还可以使用此方法命名事件。

我就是这样做的,现在它可以在任何元素或类上重复使用,并且每个元素或类的样式可以不同。

.on(event)

检查笔以查看它的实际效果。

http://codepen.io/alexmccabe/pen/LNdBKY

答案 4 :(得分:0)

只需将初始颜色保存在变量中,然后将其设置为鼠标左键。

$(document).ready(function() {
   var InitialColor = $("p").css("color")
   $("p").mouseenter(function() {
       $(this).css("color", "yellow")
   })
    .mouseleave(function() {
      $(this).css("color", InitialColor)
    })
})

https://jsfiddle.net/owzm64wa/