При изменении поведения формы одного из скриптов CMS Prestashop столкнулся с интересной задачей. Надо было подменить обработчик события onclick на свой, который бы отсылал в обработчик на php данные из полей формы в виде, который ожидает получить php-скрипт. Стандартный скрипт не работает корректно из-за изменений в структуре формы.
Навесил я новый обработчик по стандартным кодом(что-то вроде этого):
$("input[type='submit']").click(function(){alert("OOPS!");return false;});
И получил epic fail в виде срабатывания сразу двух обработчиков на одно несчастное событие. Сразу стало ясно, что надо убрать старый обработчик события. И навесить новый.
$("input[type='submit']").unbind('click');
Отсоединяем функции-обработчики от события click, и затем лёгким движением руки одной строчкой кода добавляем свой обработчик.
$("input[type='submit']").click(function(){alert("OOPS!");return false;});