<span> jQuery.click() не работает
Итак, я создал delete "button" в промежутке, но по какой-то причине я не могу запустить .click(). Есть идеи? Я новичок в jQuery и думаю, что это нечто очевидное. Я тестировал в Chrome и Safari без везения.
CSS
.delete_button {
cursor:pointer;
color: #fff;
border: 1px solid #FFF;
border-radius: 15px;
background: #AAA;
font-size: 8px;
line-height: 0px;
padding: 0px 2px 0px 2px;
}
HTML/PHP:
<span class="delete_button" id="delete_<? echo $some_id; ?>">X</span>
jQuery:
$(document).ready(function() {
$('.delete_button').click(function() {
var transaction_id = $(this).attr('id').replace('delete_','');
alert("Delete transaction #" + transaction_id);
return false;
});
});
Ответы
Ответ 1
использовать .on()
Поскольку ваш диапазон добавляется динамически, поэтому он отсутствует в момент готовности DOM или загрузки страницы.
Итак, вы должны использовать Event Delegation
Синтаксис
$( elements ).on( events, selector, data, handler );
как это
$(document).on('click','.delete_button',function(){
// code here
});
или
$('parentElementPresesntAtDOMready').on('click','.delete_button',function(){
// code here
});
ваш код будет
$(document).ready(function () {
$(document).on('click', '.delete_button', function () {
var transaction_id = $(this).attr('id').replace('delete_', '');
alert("Delete transaction #" + transaction_id);
return false;
});
});
Ответ 2
Кажется, что диапазон динамически создан, вам нужно использовать делегирование событий. Свяжите его с ближайшим статическим родителем или документом
$(document).on('click','.delete_button',function(){
/*Your code*/
});