Если вы пытаетесь использовать .on()
, чтобы вы могли прослушивать события в объекте DOM, которые могут быть созданы после того, как вы сделаете первоначальный вызов .on()
, то наиболее эффективный способ сделать это - найти существующий родительский объект, который не будет приходить и уходить, и теперь вы можете привязать слушателей событий.
.live()
помещает всех слушателей в объект документа (основной родитель) и может стать довольно неэффективным, если у вас много слушателей.
.on()
позволяет указать, какой родительский объект будет наиболее эффективным. Итак, если вы хотите поместить все эти обработчики событий в один оператор, и у этих «#header .fixed-feedback-bn, # sb-sec .feedback-bn» нет общего родителя, вам придется указать документ, как тот родитель, как Грег написал.
Но более эффективный способ сделать это - разбить его на части в соответствии с потребностями. Для элементов, которые не имеют динамической необходимости, просто привязать непосредственно к этому элементу. Например, если #header и # sb-sec не приходят / уходят и не нуждаются в динамическом поведении, вы можете просто найти прямо к ним, например:
$('#header, #sb-sec').on('click', function() {
// code here
});
И для элементов, которым необходимо динамическое поведение, выберите подходящего общего родителя и зацепите его таким образом, используя общего родителя в качестве точки перехвата событий и селектор в качестве фильтра, для каких подэлементов вы хотите Событие для:
$('#feedback').on('click', '.feedback-bn, .fixed-feedback-bn', function() {
// code here
});