大丈夫。私はここで完全に困惑しています。
水平スクロールリストがあり、スクロールできなくなると、ボタン/矢印の色が変わります(addClass removeClassを使用)。私のフィドルは(ほぼ)完璧に機能します。一方、私のコードはそうではありません...
フィドル: http: //jsfiddle.net/4rKPT/8/
jQuery:
$(document).ready(function() {
var $item = $('div.mainBodyContentListItem'),
//Cache your DOM selector
visible = 2,
//Set the number of items that will be visible
index = 0,
//Starting index
endIndex = ($item.length / visible) - 1; //End index
$('div.mainBodyContentArrowR').click(function() {
if (index < endIndex) { //can scroll
index++;
$item.animate({
'left': '-=592px'
});
}
});
$('div.mainBodyContentArrowR').click(function() {
if (index > endIndex) { //can't scroll
$('div.mainBodyContentArrowR').addClass('disable');
}
});
$('div.mainBodyContentArrowR').click(function() {
if (index < endIndex) { //can scroll
$('div.mainBodyContentArrowL').removeClass('disable');
}
});
$('div.mainBodyContentArrowL').click(function() {
if (index > 0) { //can scroll
index--;
$item.animate({
'left': '+=592px'
});
}
});
$('div.mainBodyContentArrowL').click(function() {
if (index < 0) { //can't scroll
$('div.mainBodyContentArrowL').addClass('disable');
}
});
$('div.mainBodyContentArrowL').click(function() {
if (index > 0) { //can scroll
$('div.mainBodyContentArrowR').removeClass('disable');
}
});
});
これは正常に機能します(ページが読み込まれたときのように、左に戻ってスクロールの最後をもう一度押すと、クラスが追加されて色が変更されないという問題を修正する方法がわかりませんでした-遠慮なく対処してください、しかしそれはこのスレッドの問題ではありません)。
私の実際のコードは、この場合は正しく実行します。
$('div.mainBodyContentArrowR').click(function() {
if (index < endIndex) { //can scroll
$('div.mainBodyContentArrowL').removeClass('disable');
}
});
しかし、他にはありません。私はここで困惑しています。奇妙なことに、私が上で概説したその行は正しく機能しています。'disable'クラスは最初のクリックで削除され、その後、それらのaddClass removeClass行は何もしません(前後のスクロールは機能し、正しく停止します)。
助けていただければ幸いです。50フィートのレンガの壁を見つめているだけで、自分の道が見えないような気がします。