Если первый обработчик не важен, и
если он был назначен с помощью jQuery - ваша жизнь прекрасна: можно просто вызвать на элементе метод
off();
, как-то вот так:
(function($){
$('.item').off('click');
})(jQuery);
Еще, если элемент больше ни в чем не завязан, можно поступить очень грубо - заменить элемент его копией:
(function($){
$('.item').replaceWith($('.item').clone());
})(jQuery);
(копия, по идее, не унаследует обработчики событий)
Еще можно обернуть ваш элемент другим, и ему назначить событие с перехватом. Но перехват не работает в IE8 и ниже. Чтобы назначить перехват в нормальных браузерах - третим параметром в
addEventListener()
нужно передать true и событие с перехватом на родительском элементе будет выполняться раньше событий его "детей". Пример перехвата события для IE9 и старше есть вот тут:
stackoverflow.com/a/17249184