相当基本的 JQuery 动画队列,但不起作用

发布于 2024-10-16 17:51:57 字数 805 浏览 2 评论 0原文

所以,我有了这个伟大的(?)想法来构建我自己的选项卡系统,因为我尝试过的脚本都没有像我希望的那样工作。

我有一个带有链接的列表,以及几个一开始就隐藏的 div。单击 LI,任何可见的 div 都会隐藏,然后所选的链接/div 会淡入。

HTML

<ul>
<li id="tab1">Link</li>
<li id="tab2">Link</li>
<li id="tab3">Link</li>
</ul>

<div id="tab1div">Content</div>
<div id="tab2div">Content</div>
<div id="tab3div">Content</div>

JS

$('li').click(function(){

    $('div:visible').fadeOut(1000)
    .queue(function () {
        var id = $(this).attr('id');
        $('div#' + id + "div").fadeIn('slow');
        $(this).dequeue();
    });
});

现在,问题出在动画上(除了脚本不起作用)。我的目标是为任何可见的 DIV 提供 fadeOut('fast'),然后为选定的 li/div 提供 fadeIn('slow')。排队,就是这样。

有什么想法吗?

So, I got this great (?) idea to build my own tabsystem, as none of the scripts I've tried worked as I hoped.

I've got a list with links, and a couple of divs which are hidden to begin with. Click a LI and any visible div hides whereafter the selected link/div fades in.

HTML

<ul>
<li id="tab1">Link</li>
<li id="tab2">Link</li>
<li id="tab3">Link</li>
</ul>

<div id="tab1div">Content</div>
<div id="tab2div">Content</div>
<div id="tab3div">Content</div>

JS

$('li').click(function(){

    $('div:visible').fadeOut(1000)
    .queue(function () {
        var id = $(this).attr('id');
        $('div#' + id + "div").fadeIn('slow');
        $(this).dequeue();
    });
});

Now, the problem is with the animations (apart from the script not working). I'm aiming for a fadeOut('fast') for any visible DIV, then a fadeIn('slow') for the selected li/div. Queued, that is.

Any thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

假情假意假温柔 2024-10-23 17:51:57

jQuery fadeOut 可以有两个参数,第二个是动画完成后调用的函数,所以这可能就是您想要的:

$('li').click(function(){
    var id = $(this).attr('id');
    $('div:visible').fadeOut(1000, function () {
        $('#' + id + "div").fadeIn('slow');
    });
});

jQuery fadeOut can have two parameters, the second being function called after the animation completes, so this is probably what you want:

$('li').click(function(){
    var id = $(this).attr('id');
    $('div:visible').fadeOut(1000, function () {
        $('#' + id + "div").fadeIn('slow');
    });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文