为什么在jQuery中使用多个相邻的方法不起作用?

rks48beu  于 2022-12-29  发布在  jQuery
关注(0)|答案(1)|浏览(76)

我是jQuery新手,遇到了一个问题。当我想使用多个方法时,代码无法工作。下面是代码:

$("document").ready(function() {
  $("#button1").click(function() {
    $("#home").fadeTo(1000, 0.5).delay(1800).fadeIn(500);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img src="img.png" alt="list image" id="menu">
<br/>
<nav>
  <ul>
    <li id="home"><a href="#">Home</a></li>
    <li id="contact"><a href="#">Contact</a></li>
    <li id="about"><a href="#">About</a></li>
  </ul>
</nav>

<br/>
<button id="button1">Button1</button>

我把延时从800改成了1800,因为我以为点击的时候会延时,也因为.fadeTo的速度是1000ms,可惜没有用,之后我重写了代码。

$("document").ready(function(){
   $("#button1").click(function(){
       $("#home").fadeTo(1000,0.5,function(){
           $(this).delay(800).fadeIn(1000,1.0);
        });
    });
});

这也不起作用。所以最后我把.fadeIn改成了.fadeTo。这起作用了!所以现在,因为这个我有一些问题无法回答。
1.为什么$("#home").fadeTo(1000,0.5).delay(1800).fadeIn(500);不工作?
1.为什么.fadeIn可以工作而.fadeTo不能?

ivqmmu1c

ivqmmu1c1#

这个问题与链接无关,正如您在使用完成函数时所发现的那样。
我认为问题在于,如果元素没有隐藏,fadeIn()什么也不做;如果元素是半透明的,它就会起作用。将其更改为fadeTo(500, 1.0),它就会起作用。
据我所知,这在文档中没有明确说明,我不确定这是fadeIn()中的bug还是文档中的bug。

$("document").ready(function() {
  $("#button1").click(function() {
    $("#home").fadeTo(1000, 0.5).delay(1800).fadeTo(500, 1.0);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img src="img.png" alt="list image" id="menu">
<br/>
<nav>
  <ul>
    <li id="home"><a href="#">Home</a></li>
    <li id="contact"><a href="#">Contact</a></li>
    <li id="about"><a href="#">About</a></li>
  </ul>
</nav>

<br/>
<button id="button1">Button1</button>

相关问题