1

このウェブサイトのどこかで解決されたのかもしれませんが、答えは見つかりませんでした。たぶんこれは、私がjQueryにかなり慣れておらず、何が問題を引き起こしているのか本当にわからないためです。

だから私は私のWordpressのウェブサイトに追加するこのコードを持っています。このウェブサイトで元のコードを見つけ、必要に応じて調整しようとしました。

(function(){

    var j = 0;
    var delay = 2200; //millisecond delay between cycles

    jQuery.fn.rotateImg = function() {
        var list = jQuery(this);
        function cycleThru() {
            var jmax = list.length -1;
            jQuery(list.selector + ":eq(" + j + ")")
                .animate({"opacity" : "1"} ,800)
                .animate({"opacity" : "1"}, delay)
                .animate({"opacity" : "0"}, 800, function(){
                    (j == jmax) ? j=0 : j++;
                        cycleThru();
                });
        }
        cycleThru();

    };

    jQuery(document).ready(function() {
        jQuery(".test ul li, ul.logos li").rotateImg();
    });

})();

1つのセレクターでのみ呼び出す場合は正常に機能しますが、2つ目のセレクターを追加すると、不透明度が1つの複数のリストアイテムを同時に変更します(リストアイテムの半分だと思います)。私の最初の順序付けられていないリストには2つのリスト項目しかないので、バグはそれに関係していると思います。

ちなみに英語が下手でごめんなさい。助けてくれてありがとう。

ああ...そして私はjQueryバージョン1.7.2を使用しています

編集:バグを再現することができました。あなたはここでそれを見ることができます:http: //jsfiddle.net/selbh/5kDZn/18/

4

1 に答える 1

0

新しいバージョン

http://jsfiddle.net/selbh/5kDZn/18/

(function($){

    var j = 0;
    var delay = 500; //millisecond delay between cycles


    $.fn.rotateImg = function() {

        $(this).each(function () {

            var list = $(this).find('li');
            function cycleThru() {
                var jmax = list.length -1;
                list.eq(j)
                    .animate({"opacity" : "1"} ,800)
                    .animate({"opacity" : "1"}, delay)
                    .animate({"opacity" : "0"}, 800, function(){
                        (j == jmax) ? j=0 : j++;
                            cycleThru();
                    });               
            }
            cycleThru();

        });



    };

    $(function() {
        $(".test ul, ul.logos").rotateImg();
    });


})(jQuery);​

古いバージョン:

あなたが何を達成しようとしているのかわかりません。多分これはあなたが望むものです:

http://jsfiddle.net/selbh/5kDZn/17/

(function($){

    var j = 0;
    var delay = 500; //millisecond delay between cycles


    $.fn.rotateImg = function() {

        var list = $(this);
        function cycleThru() {
            var jmax = list.length -1;
            list.eq(j)
                .animate({"opacity" : "1"} ,800)
                .animate({"opacity" : "1"}, delay)
                .animate({"opacity" : "0"}, 800, function(){
                    (j == jmax) ? j=0 : j++;
                        cycleThru();
                });               
        }
        cycleThru();

    };

    $(function () {
        $(".test ul li, ul.logos li").rotateImg();
    });



})(jQuery);​
于 2012-11-06T15:32:44.647 に答える