ich ein Problem mit meinem verschachtelt Akkordeons haben. Ich habe versucht, wie mein Akkordeon Nest, um herauszufinden, aber in einem Sinne, dass ich nicht brauche keine zusätzlichen jquery Codes für jeden spezifischen schreiben ich hinzufügen.Verschachtelte Akkordeon schließt alles
machte ich einen jsfiddle als Beispiel ... https://jsfiddle.net/L2bwmgL8/
und der Code für das Akkordeon sieht wie folgt aus:
$(document).ready(function() {
function close_accordion_section() {
$('.accordion .accordion-section-title').removeClass('active');
$('.accordion .accordion-section-content').slideUp(1000).removeClass('open');
}
$('.accordion-section-title').click(function(e) {
// Grab current anchor value
var currentAttrValue = $(this).closest('.accordion-section-title');
//console.log(currentAttrValue);
if (currentAttrValue.hasClass('active')) {
close_accordion_section();
} else {
close_accordion_section();
// Add active class to section title
currentAttrValue.addClass('active');
// Open up the hidden content panel
$('.accordion ' + currentAttrValue.attr('href')).slideDown(1000).addClass('open');
setTimeout(function() {
$('html, body').animate({
scrollTop: $(currentAttrValue.attr('href')).offset().top
}, 1000);
}, 1001);
//console.log((currentAttrValue.attr('href')));
}
e.preventDefault();
});
});
Auf diese Weise funktioniert es gut, wenn ich nicht haben sie verschachtelt. Wenn sie jedoch wie im Beispiel unter dem ersten Akkordeon verschachtelt sind (ignoriere die zerbrochenen Bilder). Dann, wenn ich auf die spezifische Akkordeon klicken, um zu schließen, alles Innere ist, das Akkordeon schließt, einschließlich der Eltern ein. Oder, vielleicht denke ich, dass nur die Eltern schließen.
Jetzt habe ich versucht, vielleicht die currentAttrValue
in der close_accordion_section()
Funktion wie close_accordion_section(currentAttrValue)
vorbei und Ändern der close_acordion_section
zu:
function close_accordion_section() {
$(this).closest('.accordion .accordion-section-title').removeClass('active');
$(this).closest('.accordion .accordion-section-content').slideUp(1000).removeClass('open');
}
Aber dann öffnet sich alles schön, aber ich kann nicht mehr jeder der Akkordeons schließen.
Jede Hilfe und Erklärung wäre appriciated, ich bin immer noch das Erlernen der Seile sozusagen.
ich leicht falsch sein könnte, aber nicht close_accordion_section aufhören, sobald die bereit() zurück existieren? Das könnte dazu beitragen. Versuchen Sie es über der bereit() Funktion zu bewegen, so dass es global – Tibrogargan
Ok scoped ist, so ist es wahrscheinlich in Ordnung, da jQuery theoretisch auf Verweise auf sie hängen. Einfach kein komfortables Stück Code. – Tibrogargan
Ja, ich kenne @Tribargargan. Ich habe versucht, es funktioniert, so war es ein bisschen links, so für den Augenblick .. –