Доброго времени суток!
Есть необходимость добавлять свой обработчик к определенному элементу. До этого момента у эл-та уже есть есть один/несколько обработчиков для этого же события. Как сделать так, чтобы мой обработчик(добавляется последним) получал управление первым из всех обработчиков для этого события на этом эл-те?
Чего-то путного нагуглить не получилось. Пока так выкрутился:
// $('#parent').prepend($('<button id="handlersQueue">Нажми меня</button>'))
$('#handlersQueue').unbind('click');
function handler_1(event){console.log('handler_1');}
function handler_2(event){console.log('handler_2');}
function handler_3(event){console.log('Должен быть первым');}
$('#handlersQueue').bind('click', handler_1).bind('click', handler_2);
console.log('!!!!! До');
$('#handlersQueue').trigger('click');
var oldHandlers = [];
var handlers = $._data($('#handlersQueue').get(0), 'events');
handlers.click.forEach(function(item)
{
oldHandlers.push(item.handler);
});
$('#handlersQueue').unbind('click');
$('#handlersQueue').bind('click', handler_3);
oldHandlers.forEach(function(item)
{
$('#handlersQueue').bind('click', item);
})
handlers = null;
console.log('!!!!! После');
console.log('handlers: ' + handlers);
$('#handlersQueue').trigger('click');
Есть у jQuery что-нибудь свое, родное для этих целей?