Привет, я создал функцию аккордеона, используя функцию jquery функцией toggleClass
.
здесь, щелкая по классу accordion
active
класс добавится к тому же классу. Я добавил некоторые стили в active
класс для отображения дочерних классов. Теперь проблема заключается в том, что аккордеон переключается, если мы нажимаем какой-либо из классов accordion
или его дочерних классов, что на нем не так? мой JS
$('.accordion').on('click', function() {
$(this).toggleClass('active');
});
$('.accordion > a.title').on('click', function() {
$(this).parent().toggleClass('active');
});
Как говорит Р.Грахам, в этом нет ничего плохого, это было именно то, о чем вы сказали. Если вы хотите, чтобы он переключался только при нажатии на заголовок, вам нужно поймать события на заголовке, а не весь аккордеонный div.
вы должны использовать .parent()
Jquery
.
$('.title').on('click', function() {
$(this).parent().toggleClass('active');
});
Попробуй это:
$('.accordion > a.title').on('click', function() {
$(this).parent().toggleClass('active');
});
или
$('a.title').on('click', function() {
$(this).parent().toggleClass('active');
});
здесь обновлено Демо