2016-08-23 4 views
0

Как я могу выполнить действие после нажатия «child_good», но не нажимать «child_wrong». Но событие onClick должно быть на родительском.JQuery, на родительском контроле над щелчком мыши

<div class="parent"> 
    <div class="child_wrong"></div> 
    <div class="child_good"></div> 
</div> 

<script> 
    $('.parent').on('click', function(){ 

     if($(this).hasClass('child_good')) { 
      alert(1); 
     } 
     return false; 
    }); 
</script> 

ответ

2

Используйте $(event.target), чтобы проверить класс щелкнутого элемента.

$('.parent').on('click', function(event){ 
 
    if($(event.target).hasClass('child_good')) { 
 
     alert(1); 
 
    } 
 
    return false; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div class="parent"> 
 
    <div class="child_wrong">aaa</div> 
 
    <div class="child_good">bbb</div> 
 
</div>

0

Вы можете делегировать событие родителю с помощью Event Delegation.

$('.parent').on('click', '.child_good', function(event){ 
 
    alert(1); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div class="parent"> 
 
    <div class="child_wrong">aaa</div> 
 
    <div class="child_good">bbb</div> 
 
</div>

+0

я не получаю downvote это должно работать [демо] (https://jsfiddle.net/b9hfogrd/) – guradio

+0

@guradio, Демонстрационный добавил – Satpal

+0

это было просто не хватает запятой, и они уже проголосовали ... – guradio

Смежные вопросы