it-roy-ru.com

<span> jQuery .click () не работает

Итак, я создал «кнопку» удаления в промежутке, но по какой-то причине я не могу запустить .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;
        });
});
26
Charles Harrison

используйте .on ()

Поскольку ваш диапазон добавляется динамически, он не присутствует во время готовности DOM или загрузки страницы.

Таким образом, вы должны использовать Делегирование событий

Синтаксис

$( 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;
    });
});  
76
Tushar Gupta

Кажется, что диапазон создается динамически, вам нужно использовать делегирование событий. Привязать его к ближайшему статическому родителю или документу

$(document).on('click','.delete_button',function(){
   /*Your code*/
});
11
Anton

Для старого webkit существует более простое решение: установить курсор на указатель с помощью CSS для диапазона . Протестировано и работает в музыкальном веб-приложении.

0
Igor Nardo