2013-09-26 9 views
0

У меня есть вопрос о Generall определить события клиента и вызвать то:JQuery события триггера стьки с течением времени

jQuery(document).on('btn.hover', function() { 
    jQuery('.orange_bubble').hover(function() { 
     jQuery(this).addClass('hover'); 
    }, function() { 
     jQuery(this).removeClass('hover'); 
    }); 
}); 

Теперь я могу назвать это событие триггера огнем этим события один раз.

jQuery(document).trigger('btn.hover'); 

Если я генерировать контент через AJAX или с помощью JS мне нужно, чтобы получить пересвязать событие на новых элементах:

так я вызвать его снова:

$.ajax{ 
    bla 
    success: { 
     jQuery(document).trigger('btn.hover'); 
    } 
} 

Как я могу это сделать без укладка событий. У меня есть эта проблема прямо сейчас. Я использую некоторые события для клиентов, и иногда им приходится переучивать все элементы, но просто одно время и не складывать.

Что является лучшей практикой для стрельбы событиями раз в день? Если они установлены в некоторые элементы в dom?

Thx за помощью

ответ

1

.hover() ярлык для использования mouseenter и mouseleave событий, но один недостаток заключается в том, что не может быть использован для регистрации делегированных обработчиков, поэтому вместо того, чтобы использовать .hover() использовать события непосредственно.

Так что попробуйте

jQuery(document).on({ 
    mouseenter: function() { 
     jQuery(this).addClass('hover'); 
    }, 
    mouseleave: function() { 
     jQuery(this).removeClass('hover'); 
    } 
}, '.orange_bubble') 
+0

работает Perfekt. Являются ли они некоторыми другими решениями с триггером? – Wykk

+0

ваш ответ потрясающий, я пишу какой-то триггер, и он отлично работает! – Wykk

1

Прежде всего вы не должны перепривязывают событие вновь добавленных элементов, если использовать делегирование событий. От JQuery page

делегированных событие имеет то преимущество, что они могут обрабатывать событие от элементов-потомков, которые добавляются к документу в более позднее время. Выбирая элемент, который гарантированно будет присутствовать во время прилагается делегированное обработчик события, вы можете использовать делегированные события, чтобы избежать необходимости часто подключать и отключать обработчик событий

вы могли бы использовать что-то вроде:

$("//container of .orange_bubble elements").on("hover", ".orange_bubble", function() { 
    //your content 
}); 

Это также предотвратит вас от «штабелирования» событий

+0

Делегация - это ответ .. ОК :) круто – Wykk

Смежные вопросы