if文の記述が不十分です。ifステートメントでボタンを無効にした後でボタンを再度有効にする
左矢印ボタンと右矢印ボタンを使用してdivを循環させようとしています。
右矢印を使用して最後のdivに到達すると(クラスセレクタ「pars」を使用して呼び出されます)、これ以上のコンテンツがないことを示すために右矢印を無効にします。同様に、左矢印を使用し、最初のdivに達すると、左矢印を無効にします。
最初と最後のdivがそれぞれ表示されていないときに、ボタンを再び有効にするコードを調整するにはどうすればよいですか?
HTML
<div class="pars active cont-3"><p>Content-1</p></div>
<div class="pars cont-3"><p>Content-2</p></div>
<div class="pars cont-3">Content-3</p></div>
<div id="btn-cycle">
<button id="cycle-back"><i class="fa fa-lg fa-3x fa-angle-left</i></button>
<button id="cycle-forward"><i class="fa fa-lg fa-3x fa-angle-right"></i></button>
</div>
CSS
.pars.active {
display: block;
}
#btn-cycle {
background-color:#ffffff;
float:right;
width:25%;
color:#565655;
padding:0.5em;
}
.cont-3 {
padding:1em;
color:#ffffff;
background-color:#3a3a3a;
font-size:0.7em;
line-height:1.35em;
font-family:"raleway", sans-serif;
margin:0;
display: none;
}
JAVASCRIPT
var $pars = $('.pars');
var $fwdBtn = document.getElementById('cycle-forward');
var $backBtn = document.getElementById('cycle-back');
$('#cycle-forward').click(function() {
var $next = $pars.filter('.active').removeClass('active').next('.pars');
if (!$next.length) $next = $pars.first();
$next.addClass('active');
if ($pars.last().is(':visible')) {
$fwdBtn.disabled = true;
} else {
$fwdBtn.disabled = false;
}
});
$('#cycle-back').click(function() {
var $prev = $pars.filter('.active').removeClass('active').prev('.pars');
if (!$prev.length) $prev = $pars.last();
$prev.addClass('active');
if ($pars.first().is(':visible')) {
$backBtn.disabled = true;
} else {
$backBtn.disabled = false;
}
});
すべてのヘルプははるかに高く評価されるだろう、
乾杯!
長さとインデックスを使用 – vamsi
両方のクリックハンドラの両方のボタンの有効/無効を切り替えるには、目に見えるチェックを行います。 'backBtn.disabled = $ pars.first()。is( ':visible');' –
矢印がクリックされていれば、左と右を有効にします。 –