У меня есть такой кусок HTML:
<li class="addToFriends"><a href="....">Something something<span>INSIDE SPAN</span>something</a></li>
Для обработки AJAX-запроса при нажатии на якорь я зарегистрировал обработчик события click:
$('.addToFriends a').click(function(event){
var target = $(event.target);
if (target.is('a')) {
// if I click on SPAN element following fragment won't execute!
// do ajax request
}
event.preventDefault();
});
Мои вопросы:
- почему событие click вызывается для элемента span? В конце концов, я не связывал событие click с элементами SPAN
- Помимо предыдущего вопроса, я подумал, что если я не буду обрабатывать событие нажатия SPAN, браузер будет использовать всплывающее событие для вызова события щелчка для привязки (если я не буду вызывать event.stopPropagation ()). Но у меня тоже не получилось, так как событие щелчка вызывается только один раз
Итак, я решил эту проблему, и мое решение:
$('.addToFriends a').click(function(event){
var target = $(event.target);
if (!target.is('a')) {
target = target.parent('a')
}
...
});
Но все же, мне любопытно, почему это так работает ...
Спасибо
1022 * Paweł *