仅在父hasclass时单击

时间:2014-11-30 00:12:04

标签: javascript jquery onclick parent

我是前端部门的新手。我试图让div只有可点击,如果它的父亲有一个特定的类应用它。这是我目前的代码。

if( !$('#capstone').closest().hasClass('slick-active') ){


 $('#capstone').click(function(e){    
    $('#capstone-container').fadeIn('slow');
 });


$('#capstone-close').click(function(e){    
   $('#capstone-container').fadeOut('slow');

});

}

这里的问题是儿童div" #capstone仍然可以点击,即使它的父母没有这个类"光滑活跃"适用于它。

1 个答案:

答案 0 :(得分:1)

添加事件监听器后,如果您选中添加它的条件变为false,则不会删除它。

相反,您可以在更改课程时手动将其删除。

或者,您可以检查事件处理程序中的条件:

var $capstone = $('#capstone'),
    $capstoneContainer = $('#capstone-container');
function condition() {
    return !$capstone.closest().hasClass('slick-active');
}
$capstone.on('click', function(e){    
    if(condition()) $capstoneContainer.fadeIn('slow');
});
$('#capstone-close').on('click', function(e){    
   if(condition()) $capstoneContainer.fadeOut('slow');
});