編集:スラックごと
$j('#banner-content img').each(function() {
var link = $j('#page-tabs li a.' + $j(this).attr('class'));
if ($j(this).is(':visible')) {
link.addClass('active');
} else {
link.removeClass('active');
}
});
元の投稿
一連の3つの画像を回転させるバナーがあります。アクティブなものにはdisplay:blockがあり、非アクティブなものにはdisplay:noneがあります。「アクティブな」クラスをタグに追加できるように、アクティブな画像のクラスをタグと一致させようとしています。その関数を書くのに問題があります。表示されているかどうかに関係なく、各img要素のすべてのクラスが追加されます...
htmlマークアップは次のようになります。
<div id="banner-area">
<div class="clearfix" id="promo-boxes-nav">
<ul id="banner-tabs">
<li>
<ul id="page-tabs">
<li><a class="t39" href="#">1</a></li>
<li><a class="t42" href="#">2</a></li>
<li><a class="t49" href="#">3</a></li>
</ul>
</li>
<li class="last"> </li>
</ul>
</div>
<div id="banner-content">
<img class="t39" src="http://localhost:8888/1.png" style="position: absolute; top: 0px; left: 0px; display: none; opacity: 0;">
<img class="t42" src="http://localhost:8888/2.png" style="position: absolute; top: 0px; left: 0px; display: block; opacity: 1;">
<img class="t49" src="http://localhost:8888/3.png" style="position: absolute; top: 0px; left: 0px; display: none;opacity: 0;">
</div>
</div>
現在の形式の関数は次のようになります。
$j('#banner-content img').each(function() {
if($j(this).css('display','inline')) {
var bcClass = $j(this).attr('class');
$j('#page-tabs li a').each(function() {
if($j('#page-tabs li a').hasClass(bcClass)) {
$j(this).addClass(bcClass);
}
});
}
});