要素の親と最初の親の子を見つけようとしています。コードは次のようになります。
<ul class="lowerMenu">
<li><a href="" class="selected">Welcome</a></li>
<li><a href="">Logo</a></li>
<li><a href="">Websites</a></li>
<li><a href="">Stationery</a></li>
<li><a href="">Illustration</a></li>
<li><a href="">Full Pack</a></li>
</ul>
function setIntervalAndExecute() {
changeImages();
setTimeout(function(){
showImages(imagesArray);
},500);
var intervalot = window.setInterval(function(){
changeImages();
var selected = $('.selected');
if (!selected.parent().is(':last-child')) {
$('.selected').parent().next().children().addClass('selected');
selected.removeClass('selected');
} else {
$('.selected').parent().parent().children(':first-child').addClass('selected');
selected.removeClass('selected'); // nesho ne mi rabotit ovdeki
}
window.setTimeout(function(){
showImages(imagesArray);
},500);
},10000);
return intervalot;
}
var intervalot = setIntervalAndExecute();
私はそれが少し複雑であることを知っていますが、私はjqueryに慣れていないので、私がやろうとしていることは、「選択された」クラスが最後の要素に到達してから、それを削除して最初の要素に設定した後です。私はこれを試しましたが、うまくいかないようです
$('.selected').parent().parent().children(':first-child').addClass('selected');
そして、最後の要素に到達すると、間隔は2回実行されて停止します。これは私が取り組んでいるサイトです:
2つのレベルを上げて次の子を見つけたら、1つのレベルだけ下がっています。<li>
ではなく<a>
にselected
クラスを設定しています。その下..あなたは別のレベルを下る必要があります。だからそれはする必要があります:
$('.selected').parent().parent().children(':first-child').children().addClass('selected');
そこに着く別の方法は:
$('.selected').parent().siblings(':first-child').children().addClass('selected');
$('.selected').parent().siblings(':first-child').children().addClass('selected');