2

fadeinfadeout連続してテキストを表示しようとしました。これが私が正確に経験したフィドルです。

これは、ループでメッセージを取得する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();

        })();

現在、最初のメッセージ自体がフェードインやフェードアウトのようにループしているように見えますが、2 番目のメッセージはそうではありません。どこで間違えたのかわからない。

どんな提案も素晴らしいでしょう。

4

3 に答える 3

2

同じ ID を持つ 2 つの要素を持つことはできません - IDは一意である必要があります。ここでは 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 に答える
2

2 つの DOM に対して ID を繰り返しています。

message_after_loginID の代わりにクラスを使用します。

フィドルのデモ

于 2013-09-03T08:19:18.350 に答える
1

ID を使用して選択すると、最初の要素のみが選択されます。HTML で id の代わりに class を使用するように変更する場合は、「.」を使用します。セレクターの「#」の代わりに機能します。

于 2013-09-03T08:22:30.660 に答える