如何取消绑定具有特定类的子元素

时间:2015-11-03 15:01:25

标签: jquery accordion unbind

我有许多基本的手风琴风格元素,可以点击它们的内容。然而,其中一些手风琴包含一个特定的子元素(),当我想要在整个手风琴元素上禁用手风琴效果时。因此,如果页面有10个手风琴元素,其中5个包含子元素,则后面的手风琴应该是静态的 - 即没有slideToggle。

我一直在尝试将条件包装成条件,以便如果父母让孩子拥有 class =& #34;普通" 然后它执行手风琴代码 else 它解除了父母点击功能。

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'))不是一个功能

1 个答案:

答案 0 :(得分: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