0

ご覧のとおり、私はjqueryを初めて使用します。単純な効果を実行しようとしています。ここでは、メニューリンクでギャラリーをフィルタリングし、ホバーで不透明度を変更し、クリックすると機能を停止するためにホバーする必要があります。私が試したのは、クリック時に「.disabled」クラスを追加することです。これはメニューリンクに追加され、ホバー関数をに設定します.not(."disabled")が、どうやらホバーはdomの準備ができた後にクラスをチェックしていません。これを修正するにはどうすればよいですか?この関数を最適化する方法に関する他のポインタが役立ちます。前もって感謝します。クラジッド

これが私のコードです:

$('#menu-item-43 a ,#menu-item-44 a, #menu-item-42 a, #menu-item-64 a').click(function() {
                $('#menu-item-43 a ,#menu-item-44 a, #menu-item-42 a, #menu-item-64 a').addClass('disabled');
            });


            $('#menu-item-42 a').click(function() {
                $('.exhibition, .prototyping').stop().animate({ opacity: 0.0 }, 500);
            });
            $('#menu-item-42 a').click(function() {
                $('.design').stop().animate({ opacity: 1.0 }, 500);
            });

            $('#menu-item-43 a').click(function() {
                $('.design, .prototyping').stop().animate({ opacity: 0.0 }, 500);
            });
            $('#menu-item-43 a').click(function() {
                $('.exhibition').stop().animate({ opacity: 1.0 }, 500);
            });

            $('#menu-item-44 a').click(function() {
                $('.design, .exhibition').stop().animate({ opacity: 0.0 }, 500);
            });
            $('#menu-item-44 a').click(function() {
                $('.prototyping').stop().animate({ opacity: 1.0 }, 500);
            });

            $('#menu-item-64 a').click(function() {
                $('.design, .exhibition, .prototyping').stop().animate({ opacity: 1.0 }, 500);
            });  



            $('#menu-item-42 a').not('.disabled').hover(function() {
                $('.exhibition, .prototyping').stop().animate({ opacity: 0.0 }, 500);
            });
            $('#menu-item-42 a').not('.disabled').hover(function() {
                $('.design').stop().animate({ opacity: 1.0 }, 500);
            });

            $('#menu-item-43 a').not('.disabled').hover(function() {
                $('.design, .prototyping').stop().animate({ opacity: 0.0 }, 500);
            });
            $('#menu-item-43 a').not('.disabled').hover(function() {
                $('.exhibition').stop().animate({ opacity: 1.0 }, 500);
            });

            $('#menu-item-44 a').not('.disabled').hover(function() {
                $('.design, .exhibition').stop().animate({ opacity: 0.0 }, 500);
            });
            $('#menu-item-44 a').not('.disabled').hover(function() {
                $('.prototyping').stop().animate({ opacity: 1.0 }, 500);
            });

            $('#menu-item-64 a').not('.disabled').hover(function() {
                $('.design, .exhibition, .prototyping').stop().animate({ opacity: 1.0 }, 500);
            });  
4

1 に答える 1

0

私はあなたがこのようにすべきだと思います

$('#menu-item-43 a').hover(function() {
   if (!$(this).hasClass('disabled'))
      $('.exhibition').stop().animate({ opacity: 1.0 }, 500);
});
于 2012-07-23T02:03:36.547 に答える