クリック可能なプロパティを持つ4つのボタンがあります。ボタンをクリックするとdivが下にスライドし、同じdivをもう一度クリックするとdivが閉じます。divを開いているときに、残りの3つのボタンのクリックプロパティを無効にする必要があるなどの条件を追加したいのですが、
for (var i = 1; i <= 4; i++) {
$(".slide" + i).click(function () {
var openTab = $(this).attr('class');
openTab = openTab.replace('slide', '');
var facetGroup = $(this).attr("key");
if ($('#panel').is(':visible')) {
buttonCloser(openTab);
} else {
buttonOpener(openTab, facetGroup);
}
});
}
function buttonCloser(m) {
for (var j = 1; j <= 4; j++) {
if (j != m) {
//alert(j);
$(".slide" + j).bind("click");
} else {
$(".slide" + j).css({
"background-color": " #fff5c3",
"color": "#000000"
});
}
}
$("#panel").slideUp("slow");
}
function buttonOpener(m, n) {
for (j = 1; j <= 4; j++) {
if (j != m) {
$(".slide" + j).unbind("click");
} else {
$(".slide" + j).css({
"background-color": "#293345",
"color": "#fff5c3"
});
}
}
$("#panel").slideDown("slow");
refreshFacet(n);
}
このコードの問題は、スライダーをクリックしてdivを初めて開くと、他の3つのクリックイベントが無効になることです。そのdivを閉じると、クリックプロパティが再度有効になりません。だから何も開かない。