我有以下jQuery代码设置:
$(document).on('click touchstart', function (e) {
if ( (!$(e.target).hasClass('sb')) ) {
$('#features .sb .screen').animate({ top: '6.438em' }, 150);
}
}
修改以下代码:
<div class="item">
<div class="sb">
<p>
<a class="title" href="#">my title</a>
<a href="#">some other link</a>
</p>
</div>
</div>
如果元素hasClass为sb,我怎么告诉目标不仅忽略任何动作,还要对嵌套的p,.title或链接等任何子元素不采取行动?
答案 0 :(得分:2)
使用closest()和length
$(document).on('click touchstart', function (e) {
if ( !$(e.target).closest('.sb').length ) {
$('#features .sb .screen').animate({ top: '6.438em' }, 150);
}
}
您不需要与hasClass()
核对,因为closest()
将以元素本身开头