0

スクリプトについて少し助けが必要です。デフォルトのスライド (#slide1) から左のナビゲーション矢印を非表示にしようとしています。最初は機能しますが、ユーザーがスライドショーをスライドして同じスライドに戻ると (#slide1) 矢印が表示されます。私のスクリプトを見て、誰かが私が間違っていることを教えてもらえますか:

var curSlide = 0;

 function setSlide(num,dir){  
   var oldSlide = curSlide;  
    if(num>5) num = 1;  
  else if(num<1) num = 5;  
  var showDir = "";
  var hideDir = "";  
     (dir=="f"){
     showDir = "right";  
     hideDir = "left";  
  } else {  
    showDir = "left";  
    hideDir = "right";  
}  
if(curSlide == 0){  
$("#slide1").show();  
$('#left_arrow').hide();  
curSlide = 1;      

} else {  
curSlide = num;      

$("#slide"+curSlide).show('slide',{direction:showDir},600);  
    $("#slide"+oldSlide).hide('slide',{direction:hideDir},600);  
$('#left_arrow').show();  
}  

}

 function nextSlide(){  
   setSlide(curSlide*1+1,"f");  
   }     

function prevSlide(){  
setSlide(curSlide*1-1,"b");  
 }  



$(document).ready(function () { 
if($('#show_picks')) {  

$('#show_picks area').each(function() {  
        $(this).click(function(e) {  
            e.preventDefault();  
            setSlide($(this).attr('id'),"f");  
        });  
        $(this).mouseover(function(e) {  
            $(this).css("cursor", "pointer");  
        });  
        $(this).mouseout(function(e) {  
            $(this).css("cursor", "default");  
        });  

    });  
}   
    $("#left_arrow").click(function(e) {  
            e.preventDefault();  
            prevSlide();  
    });

    $("#right_arrow").click(function(e) {  
            e.preventDefault();  
            nextSlide();  
    });


    $("#left_arrow").mouseover(function(e) {  
            $("#left_arrow").css("cursor", "pointer");  
    }); 


    $("#left_arrow").mouseout(function(e) {  
            $("#left_arrow").css("cursor", "default");  
    });


    $("#right_arrow").mouseover(function(e) {  
            $("#right_arrow").css("cursor", "pointer");  
    });


    $("#right_arrow").mouseout(function(e) {  
            $("#right_arrow").css("cursor", "default");  
    });  

     for(var i=2;i<6;i++){  
        $("#slide"+i).hide();   
      }  
    setSlide(0,"f");  
});  
4

1 に答える 1

0

問題は、現在のスライドが 0 であるかどうかを確認することです。左矢印を非表示にします。これは、最初のスクリプトのロード時にのみ発生します。

実行中のため、再び0になることはありません

if(num>5) num = 1;  
  else if(num<1) num = 5;  

curSlide = 1;   

curSlide = num;      

num を 1 から 5 の間、または 1 を 0 にしないように設定し、非表示にする条件は

if(curSlide == 0){  
$("#slide1").show();  
$('#left_arrow').hide(); 

最初に設定curslide=1して、条件を次のように変更する 必要があります。if(curSlide == 1){

于 2012-07-03T17:49:34.417 に答える