2
<div id="contentimage">
    <img src="1.jpg" class="activeimage" />
    <img src="2.jpg" style="opacity: 0;" />
    <img src="3.jpg" class="last" style="opacity: 0;" />
</div>

<script>
window.addEvent('domready', function() {

    var fx = function() {

    var activeimage = $$('img.activeimage');

        if(!activeimage.hasClass('last')) {

            var next = activeimage.getNext('img');

            activeimage.toggleClass('activeimage');
            next.toggleClass('activeimage');

            activeimage.morph({'opacity':'0'});
            next.morph({'opacity':'1'});

        } else {

            var next = $('contentimage').getFirst('img');

            activeimage.toggleClass('activeimage');
            next.toggleClass('activeimage');

            activeimage.morph({'opacity':'0'});
            next.morph({'opacity':'1'});

        }

    }

    fx.periodical(3000);

});
</script>

なぜこれが理解できないのですか:

if(!activeimage.hasClass('last'))

常に false を返しますか? 「alert」で確認してみたところ、大丈夫だったのですが、このセリフになると、思い通りにいかない。

4

1 に答える 1

2

代わりにこれを使用してください:

var activeimage = document.getElement('img.activeimage');

それ以外の場合$$は、そのようにfamily申請することはできません.hasClass()

デモはこちら(数秒後にコンソールを確認してください)

于 2013-09-15T13:55:39.563 に答える