2

我试图连续显示fadein文本fadeout。这是我所经历的小提琴。

这是我在循环中收到消息的jquery

 (function() {

            var message = jQuery("#message_after_login");
            var message_index = 1;

            function shownextmessage() {
                ++message_index;
                message.eq(message_index % message.length)
                        .fadeIn(2000)
                        .delay(2000)
                        .fadeOut(2000, shownextmessage);
            }

            shownextmessage();

        })();

现在它出现了第一条消息本身像淡入和淡出一样循环,但不是第二条消息。我不确定我在哪里做错了。

任何建议都会很棒。

4

3 回答 3

2

您正在为两个 DOM 重复 ID。

message_after_login使用类而不是 ID。

小提琴演示

于 2013-09-03T08:19:18.350 回答
2

您不能有 2 个具有相同 id 的元素 - id必须是唯一的,您可以在此处使用 class 而不是 id

<div class ="message_after_login">Testing for first message</div>
<div class = "message_after_login">This is for testing 2nd message</div>

然后

(function () {

    var message = jQuery(".message_after_login").hide();
    var message_index = -1;

    function shownextmessage() {
        ++message_index;
        message.eq(message_index % message.length)
            .fadeIn(2000)
            .delay(2000)
            .fadeOut(2000, shownextmessage);
    }

    shownextmessage();

})();

演示:小提琴

于 2013-09-03T08:18:14.703 回答
1

使用 ID 选择只会选择第一个元素。如果您将其更改为在 HTML 中使用 class 而不是 id,请使用“.”。而不是选择器中的“#”,它将起作用。

于 2013-09-03T08:22:30.660 回答