jQuery добавляет обработчик события к элементу с уже определенным обработчиком события

0

У меня есть элемент с обработчиком события, определенным на нем:

$('.element').click(function(){
    alert('I was clicked');
})

Есть ли способ добавить - или лучше EXTEND - обратный вызов, определенный для события click для селектора .element, чтобы получить что-то вроде этого?

/* In another part of my .js script I add these lines of code. 
 * Here is where I'd like to "add" or "extend" the handler with another callback */
$('.element.specific_extended_element').click(function(){
    alert('Extended click');
    /* -- execute parent handler -- */
})

Результат, который я хотел бы получить, будет похож на два предупреждения, открытые при нажатии на .element.specific_extended_element:

1st alert: "Extended click";
2nd alert: "I was clicked".
Теги:
callback
event-handling

1 ответ

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

Один простой и прямой подход - делать то, что вы всегда делаете, когда хотите повторно использовать функциональность: сделать его функцией, которую вы можете вызывать из нескольких мест:

// The original handler
function originalHandler() {
    alert('I was clicked');
}

// Hooking it up, not including the special element
$('.element:not(.specific_extended_element)').click(originalHandler);

// Hooking up your additional handler
$('.element.specific_extended_element').click(function(e){
    alert('Extended click');
    originalHandler.call(this, e);
});

Живой пример

Ещё вопросы

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