jQuery Добавление событий события

0

Я пытаюсь создать карточный дизайн для практики, и я застрял в анимации добавления в руку. На этот раз я подумал, что использование append и добавление четных обработчиков будет работать, но оказалось, что он работает только для последнего добавленного элемента (в данном случае li). вот код на jsfiddle для более легкого тестирования.

Код:

$('.deck .card').on('click', function () {
    // $(this).appendTo('.hand')
    $('.hand').append(this)
    $('.hand .card').on('click', function(){
        $(this).addClass('flip')
    })
})

Я попытался переместить событие клика за руку вне колоды, но это не сработало. Кроме того, здесь приведен код в jsfiddle для более легкого тестирования http://jsfiddle.net/FAZUc/9/

Благодарю.

  • 0
    Странно ... если вы нажимаете очень быстро, он начинает переворачиваться в обратном порядке
  • 0
    Просто удалите событие click на элементе clicked, прежде чем добавить новый. Кроме того, нацеливайтесь только на выбранный элемент. $(this).off('click').on('click',... jsfiddle.net/FAZUc/16

1 ответ

4
Лучший ответ

Удалите событие click из элемента clicked, а затем добавьте новое событие click только в элемент с кликом.

$('.deck .card').on('click', function () {
    // $(this).appendTo('.hand')
    $('.hand').append(this)
    $(this).off('click').on('click', function(){
        $(this).addClass('flip')
    })
})

http://jsfiddle.net/FAZUc/16/

Делегирование событий делает это еще проще.

$('.deck').on('click', '.card', function () {
    $('.hand').append(this)
});
$('.hand').on('click','.card', function(){
    $(this).addClass('flip')
});

http://jsfiddle.net/FAZUc/18/

  • 0
    Это не работает правильно, некоторые ошибки
  • 0
    что говорят ошибки?
Показать ещё 12 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню