2015-11-03 3 views
0

У меня есть ряд основных элементов стиля аккордеона, которые убирают их содержимое при нажатии. Однако некоторые из этих аккордеонов содержат определенный дочерний элемент(), который, когда он присутствует, я хочу, чтобы эффект аккордеона был отключен на всем этом аккордеонном элементе. Поэтому, если на странице есть 10 элементов аккордеона, а 5 из них содержат дочерний элемент, то эти последние аккордеоны должны быть статическими, то есть без скольжения.Как отменить привязку к элементу с дочерним элементом, у которого есть определенный класс

Я пытался вещи, как обертывание моего кода в условном таким образом, что если родитель делает не иметь ребенок с классом = «нормальным» затем выполняет код аккордеона еще его Отключает функцию щелчка от родителя.

function team() { 
    if (!$('.accordion').children().hasclass('.normal')) { 
     $('.accordion').click(function (e) { 
      var $textContent = $(this).find('.content'); 
      $('.content').not($textContent).slideUp('slow'); 
      $textContent.slideToggle('slow'); 
     }); 
    } else { 
     $(this).unbind('click'); 
    } 
} 

У меня есть функционал fiddle основного аккордеона. Тем не менее, я должен что-то пропускать, потому что, когда я пытаюсь выполнить вышеуказанный код, он не работает. В частности, я говорю, что if (!$('.accordion').children().hasclass('.normal')) не является функция

ответ

0

Попробуйте

$('.content').hide();  
$('.accordion').off('click').on('click', function (e) { 
    if(!$(this).find('.normal').length) { // check the condition here 
    var $textContent = $(this).find('.content'); 
    $('.content').not($textContent).slideUp('fast'); 
    $textContent.slideToggle('slow'); 
    } 
}); 

Fiddle

+0

Вот так. Благодарю. – Luke