2016-08-11 2 views
1

у меня есть этот HTML код:Избегайте барботирование в вложенных элементах

<td class="myclass"> 
    <span> 
     <span>xxxx</span> 
    </span> 
    <span>xxxx</span> 
    <span>xxxx</span> 
</td> 

Я прилагаю событие щелчка к элементам с классом «MyClass», проходящей фикцию, как обратный вызов. В этой функции я получаю в event.target любой из элементов, но элемент, который я хочу получить, это td. ¿Могу ли я избежать пузырьков, чтобы всегда получать td в цель или событие?

Большое спасибо

ответ

2

Используйте this контекст внутри handler-function

$('.myclass').on('click', function() { 
 
    console.log(this); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td class="myclass"> 
 
     <span> 
 
     <span>xxxx</span> 
 
     </span> 
 
     <span>xxxx</span> 
 
     <span>xxxx</span> 
 
    </td> 
 
    </tr> 
 
</table>

Илиe.currentTarget

Идентифицирует текущую цель для события, так как событие пересекает DOM. Он всегда относится к элементу, к которому привязан обработчик событий, а не к event.target, который идентифицирует элемент, на котором произошло событие.

$('.myclass').on('click', function(e) { 
 
    console.log(e.currentTarget); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td class="myclass"> 
 
     <span> 
 
     <span>xxxx</span> 
 
     </span> 
 
     <span>xxxx</span> 
 
     <span>xxxx</span> 
 
    </td> 
 
    </tr> 
 
</table>

+0

Я забываю, чтобы знать, что я не могу использовать это, потому что мне нужно приложить события таким образом: ('MyClass '). $ На (' Клик', туРипсЫоп); Однажды в моей функции «это» - это документ. – MKP

+0

@MKP - Как насчет второго подхода? – Rayon

+0

«этот» или «e.currentTarget» - это сам документ в функции обратного вызова. Thx за вашу помощь. – MKP

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

  • Нет связанных вопросов^_^