1

私が取り組んでいるサイトは、すべてアコーディオン スタイルのスライドに基づいています。問題は、使用したコードがデフォルトで開いているスライドを閉じないことです。あるスライドをクリックすると開き、別のスライドをクリックすると最初のスライドが閉じられるようにする必要があります。ページからすべての JS を投稿しました。一度に 1 つのスライドしか開くことができないようにするには、これに何を追加できますか?

<script> 
if ($(this).scrollTop() > 100) {
$('#up').fadeIn();
} else {
$('#up').fadeOut();
}

$(window).scroll(function(){
if ($(this).scrollTop() > 100) {
$('#up').fadeIn(); 
} else {
$('#up').fadeOut(); 
}
});

$('#up').click(function(){

$('html, body').animate({scrollTop:0}, 800);  
});
</script>

<!-- Menu -->
<script>    
$('.link').click(function() {

var link = $(this).attr('href');
$('html,body').animate({scrollTop: $(link).offset().top - 80}, 800);
});
</script>

<!-- Collapse Toogle -->
<script>      
$('.accordion-toggle').click(function() {

$('html,body').animate({scrollTop: $(this).offset().top - 105}, 800); 
});
4

2 に答える 2

2

クリックしたアイテムのクラスを変更できます。

$('.accordion-toggle').click(function() {

    for (c=0;c<$('.collapse').length;c++){
        $("#"+$('.collapse')[c].id).collapse('hide');
    }

    $('html,body').animate({scrollTop: $(this).offset().top - 105}, 800);
});

そのため、a をクリックすると、.menu-itemすべて.menu-item-clickedを取得して閉じるように変更できます。

于 2013-09-26T11:29:27.250 に答える
-1

jQueryUIには、アコーディオンなど、非常に便利なウィジェットがいくつかあります。動作を再現しようとする代わりに、それを使用してください。(それがどのように機能するかを知りたくない場合を除き、学習目的で何かを作成することは有効です。ただし、質問ではそれを指定する必要があります。)

于 2013-09-26T11:01:15.533 に答える