2012-03-06 11 views
0

お手数ですが、このコードは機能しません。次の画像を選択していますが、最後の画像にあり、「次の画像」がない場合は、「li」の最初の画像を選択します。私はif条件を追加しました:if(nextLi.value!== '))...これは動作していないようです。.first( 'li)リストの最初の項目を選択していないと

if (!nextLi.length){ 
//do stuff 
} 

選択はあなたが!

+0

HTMLマークアップを投稿できますか – Curt

答えて

0

。もしブロック内の3行が同じであることも

if (nextLi.length > 0) { 

注:あなたはそれがすべての要素が含まれているかどうかを確認したい場合は何かがセレクタ(複数可)をマッチした場合、つまり、あなたはその後、ちょうどその.lengthプロパティを確認してください使用しましたあなたのコードを簡素化することができますので、他の最後の3行として、次のように:それは唯一の代わりに使用されて以来

if (nextLi.length === 0) { 
     nextLi = $('.sel').parent().parent().first('li').find('a'); 
    } 
    $('#background').find('img').attr({'src': nextLi.attr('rel') }); 
    $('.sel').appendTo(nextLi); 

は(私は完全にnextLia変数を削除しました - あなただけの直接ときnextLi.attr('rel')を使用することができますsrc属性を設定してください)

0

nextLi jQueryオブジェクトであるを追加してnextLi.lengthは、0(すなわちfalse)を返します空の場合:あなたは、代わりにlengthを使用して行う必要があります

function nextImg(){   
    $('#background').find('img').animate({'opacity': 0}, 500, function(){ 
     var nextLi = $('.sel').parent().parent().next('li').find('a'); 

     if (nextLi.value !=='') { 
      var nextLiA = nextLi.attr('rel'); 
      $('#background').find('img').attr({'src':nextLiA}); 
      $('.sel').appendTo(nextLi); 
     } else { 
      var nextLi = $('.sel').parent().parent().first('li').find('a'); 
      var nextLiA = nextLi.attr('rel'); 
      $('#background').find('img').attr({'src':nextLiA}); 
      $('.sel').appendTo(nextLi); 
     } 
    }); 
} 
0

これを試してください。 liのサイズをチェックし、見つからなければ最初のものを選択します。

function nextImg(){   
    $('#background').find('img').animate({'opacity': 0}, 500, function(){ 
     var li = $('.sel').parent().parent().next('li').find('a'); 

     if(li.length == 0) { 
      //if there is not last item 
      li = $('.sel').parent().parent().first('li').find('a'); //get the first item 
     } 
     var liA = li.attr('rel'); 
     $('#background').find('img').attr({'src':liA}); 
     $('.sel').appendTo(li); 

    }); 
} 
関連する問題