Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .delay()函数不使用';不能使用attr()函数_Javascript_Jquery - Fatal编程技术网

Javascript .delay()函数不使用';不能使用attr()函数

Javascript .delay()函数不使用';不能使用attr()函数,javascript,jquery,Javascript,Jquery,我在我的网站上有一些图片,我想用这些代码隐藏它们,更改显示的图片并将其显示出来,但是新图片会立即显示出来。我不知道该怎么办 这是javascript: $(document).ready(function() { $('.show').click(function() { $(this).removeClass("show").addClass("clickedShow"); $('.show').animate({opacity: 0}, 1000); $(this

我在我的网站上有一些图片,我想用这些代码隐藏它们,更改显示的图片并将其显示出来,但是新图片会立即显示出来。我不知道该怎么办

这是javascript:

$(document).ready(function() {
  $('.show').click(function() {
    $(this).removeClass("show").addClass("clickedShow");
    $('.show').animate({opacity: 0}, 1000);
    $(this).delay(1000).animate({opacity: 0}, 1000);

    $(this).animate({opacity: 1}, 1000).attr("src", "pic2.png");
    $('.show').delay(1000).animate({opacity: 1}, 1000).attr("src", "pic2.png");
  });
});

delay
仅适用于可以排队的动画,
attr
不排队,因此它不受
延迟的影响。如果要在动画结束时执行某些操作,请将该操作添加到
动画
回调中

$(this).animate({opacity: 1}, 1000, function(){$(this).attr("src", "pic2.png")});

delay
仅适用于可以排队的动画,
attr
不排队,因此它不受
延迟的影响。如果要在动画结束时执行某些操作,请将该操作添加到
动画
回调中

$(this).animate({opacity: 1}, 1000, function(){$(this).attr("src", "pic2.png")});
.delay()方法最适合在排队的jQuery效果之间进行延迟。因为它是有限的,例如,它没有提供一种取消延迟的方法

因此,您可以尝试使用排队jQuery效果,并在它们之间使用.delay(1000)。比如:

$("button").click(function() {
      $("div.first").slideUp(300).delay(800).fadeIn(400);
      $("div.second").slideUp(300).fadeIn(400);
    });</script>
$(“按钮”)。单击(函数(){
$(“第一分区”).slideUp(300)、delay(800)、fadeIn(400);
美元(第二分区).slideUp(300).fadeIn(400);;
});
.delay()方法最适合在排队的jQuery效果之间进行延迟。因为它是有限的,例如,它没有提供一种取消延迟的方法

因此,您可以尝试使用排队jQuery效果,并在它们之间使用.delay(1000)。比如:

$("button").click(function() {
      $("div.first").slideUp(300).delay(800).fadeIn(400);
      $("div.second").slideUp(300).fadeIn(400);
    });</script>
$(“按钮”)。单击(函数(){
$(“第一分区”).slideUp(300)、delay(800)、fadeIn(400);
美元(第二分区).slideUp(300).fadeIn(400);;
});
这将解决您的问题:这将解决您的问题: