Jquery change background color

前端 未结 3 1166
耶瑟儿~
耶瑟儿~ 2020-11-29 19:17

I was trying out jquery with this example:

 $(document).ready(function(){
      $(\"button\").mouseover(function(){
        $(\"p#44.test\").css(\"backgroun         


        
相关标签:
3条回答
  • 2020-11-29 20:08

    The .css() function doesn't queue behind running animations, it's instantaneous.

    To match the behaviour that you're after, you'd need to do the following:

    $(document).ready(function() {
      $("button").mouseover(function() {
        var p = $("p#44.test").css("background-color", "yellow");
        p.hide(1500).show(1500);
        p.queue(function() {
          p.css("background-color", "red");
        });
      });
    });
    

    The .queue() function waits for running animations to run out and then fires whatever's in the supplied function.

    0 讨论(0)
  • 2020-11-29 20:11

    This is how it should be:

    Code:

    $(function(){
      $("button").mouseover(function(){
        var $p = $("#P44");
        $p.stop()
          .css("background-color","yellow")
          .hide(1500, function() {
              $p.css("background-color","red")
                .show(1500);
          });
      });
    });
    

    Demo: http://jsfiddle.net/p7w9W/2/

    Explanation:

    You have to wait for the callback on the animating functions before you switch background color. You should also not use only numeric ID:s, and if you have an ID of your <p> there you shouldn't include a class in your selector.

    I also enhanced your code (caching of the jQuery object, chaining, etc.)

    Update: As suggested by VKolev the color is now changing when the item is hidden.

    0 讨论(0)
  • 2020-11-29 20:16

    try putting a delay on the last color fade.

    $("p#44.test").delay(3000).css("background-color","red");
    

    What are valid values for the id attribute in HTML?
    ID's cannot start with digits!!!

    0 讨论(0)
提交回复
热议问题