У меня проблема, которую я не могу исправить, поэтому вот моя первая тема для стекирования! Я делаю страницу презентации участников, которая показывает только изображение и имя участников, и когда мы нажимаем на него, в div появляется больше информации, а div растет в размере, используя класс, добавленный с jquery для запуска анимации. Пока показ контента работает, но по какой-то причине я не нахожу, что не могу закрыть div участника, удалив его класс. Вот html, css и jquery. Я также работаю над рубиновой средой.Как я могу удалить класс из div, используя события click для определенных элементов?
<div class="member">
<div class="profile">
<!-- name and picture of the member -->
</div>
<!-- this div is hidden with css -->
<div class="member-presentation">
<!-- content -->
<!-- a close button to remove the .active-member class -->
<button class="close"><i class="fa fa-times-circle-o" aria-hidden="true"></i></button>
</div> <!-- member-presentation -->
Я использую SASS для отображения скрытого текста, когда добавляется правильный класс.
.member {
border: 0;
width: 235px;
transition: all 200ms ease-out;
.member-presentation {
display: none;
}
}
.member.active-member {
width: 800px;
.member-presentation {
display: block;
}
}
И затем появляется jquery, который является частью, которая не будет работать.
var $member = $('div.member');
var member = {
showPresentation : function() {
if(!$member.hasClass('active-member')) {
$(this).addClass('active-member');
}
else if($member.hasClass('active-member')) {
// this is to prevent closing the presentation by clicking anywhere on it
$(this).preventDefault();
}
}, // attribute showPresentation
closePresentation : function() {
if($member.hasClass('active-member')) {
$('.close').click(function() {
$member.removeClass('active-member');
});
}
} // attribute closePresentation
}; // object member
//execution of the functions
$member.on('click', member.showPresentation);
$member.on('click', member.closePresentation);
Класс не будут удалены по нажатию кнопки закрытия и я не знаю, как заставить его работать ... Я хотел бы, чтобы это произошло, когда мы щелкаем вне элемента div или на дочернем элементе sibling, который наследует класс .active-member, но я понятия не имею, как это сделать ... Я довольно новичок в jquery, поэтому, возможно, решение легко, но я в отчаянии! Любой, кто может мне помочь, станет моим героем!
Кажется, опечатка в коде, или, может быть, только в вашей почте? Вам не хватает закрытия кнопки («>»). – Anders
Для чего нужна функция $ ('. Close'). Click (function() {' –
********* –