0

画像のロールオーバー用のjQuery関数を作成しました。つまり、特定の画像にカーソルを合わせると、拡大する必要があります。しかし、問題は、これらの画像には 2 つのタイプがあり、緑色の境界線が付いている場合と赤い境界線が付いている場合があります。赤い境界線がある場合、イメージ名は"RB"で終わります。現在、問題は画像にRBが含まれているかどうかに関係なく、拡大されています。ブール値をディサイダー パラメーターとして使用しました。その名前は"pos"です。印刷すると正しい値が表示されますが、コードロジック内ではすべて間違っています。

<script type="text/javascript">
            var preLoadImages=['../icons/alfresco64.png','../icons/RSS64.jpg',
                            '../icons/google_calendar64.png','../icons/connections64.png',
                            '../icons/linkedin64.png','../icons/salesforce64.png',
                            '../icons/sharepoint_2010_64.png'];

        var imgs=[];
        for(var i=0;i<preLoadImages.length;i++){
            imgs[i]=new Image();
            imgs[i].src=preLoadImages[i];
        }
        $(document).ready(function(){


            $('#slider img').mouseover(function(){
                var j;
                var imgFile=$(this).attr('src');
                var imgFileID=$(this).attr('id');

                if(imgFileID=="Alfresco"){
                    j=0;
                }
                if(imgFileID=="GoogleCalendar"){
                    j=2;
                }
                if(imgFileID=="Linkedin"){
                    j=4;
                }
                if(imgFileID=="Rss"){
                    j=1;
                }
                if(imgFileID=="Salesforce"){
                    j=5;
                }
                if(imgFileID=="Sharepoint"){
                    j=6;
                }
                if(imgFileID=="Connections"){
                    j=3;
                }
                if((j>=0)&&(j<=6)){
                var pos=/RB.png$/.test(imgFile);

                if(pos){
                    return false;
   } if(!pos){
                $(this).hover(
                function(){
                    $(this).attr('src',imgs[j].src);
        },
                function(){
                    $(this).attr('src',imgFile);
                }
       );
       }
                } 
            });
        });
    </script>

私によると、画像 src に RB が含まれている場合、メソッドは false を返す必要があります。ただし、ホバーすると常に画像が拡大されます。私がjQueryの初心者であることを助けてください。

4

2 に答える 2

0

名前の認識を行うのは良い考えではありません.2〜3週間後には、この小さなことを忘れてしまいます. 画像に html5 のような属性を付けて、違いを生むために使用します。

また、ホバー効果のみの場合は、クリーンなcssで実行してjsをスキップできます。css を使用する場合は、「スプライト」の作成方法を参照し、それを使用して読み込み速度を上げてください。

于 2012-04-18T12:56:01.703 に答える
0

jsFiddle を作成する場合はお手伝いできますが、一見すると問題になる可能性があります。

if (pos) {
   return false;
} 

if (!pos) { 
     ... 
}

次のように変更します。

if (pos) {
   return false;
} else { 
     ... 
}
于 2012-04-18T14:38:16.720 に答える