У меня есть элемент с обработчиком события, определенным на нем:
$('.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".
Один простой и прямой подход - делать то, что вы всегда делаете, когда хотите повторно использовать функциональность: сделать его функцией, которую вы можете вызывать из нескольких мест:
// 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);
});