#jquery #jquery-selectors #preventdefault
#jquery #jquery-селекторы #предотвратить по умолчанию
Вопрос:
У меня возникли проблемы с выбором элемента в моем DOM.
Как вы выбираете для всех ссылок корзины класса td?
<td class="trash_can">
<a rel="nofollow" data-remote="true" data-method="delete" data-confirm="Are you sure you want to delete Greek Theater at U.C. Berkeley?" href="/promotions/2/places/46">
<img id="trash_can" src="http://test.dev/images/trash.png?1305741883" alt="Trash">
Следующий код ничего не делает и не работает:
$(function(){
$('.trash_can').live("click", function(event) {
console.log('Clicked Delete');
event.preventDefault();
});
});
Ответ №1:
.trash_can
выбирает ваш td
, а не его a
. Вы хотите применить обработчик события к a
элементу.
$(function(){
$('.trash_can a').live("click", function(event) {
console.log('Clicked Delete');
event.preventDefault();
});
});
Комментарии:
1. 1 за то, что он выглядит правильно и является наиболее полным, удалил мой, поскольку это обман.
Ответ №2:
вам нужно привязать тег к селектору
$(function(){
$('.trash_can a').live("click", function(event) {
console.log('Clicked Delete');
event.preventDefault();
});
});
Также вам следует использовать .делегировать() вместо live()
Пример:
$(".trash_can").delegate("a", "click", function(){
console.log('Clicked Delete');
event.preventDefault();
});
Ответ №3:
Вероятно, вы захотите выбрать сами ссылки, а не td.
$(function(){
$('.trash_can a').live("click", function(event) {
console.log('Clicked Delete');
event.preventDefault();
});
});