2011-12-21 3 views
1

У меня есть кнопка с событием click (из библиотеки сторонних участников), которая отправляет форму. Мне нравится удалить событие click, добавить свою собственную функцию и вызвать исходное событие после проверки.Управление событиями: Заменить событие click

Я думал, что просто добавлю event.stopImmediatePropagation();, но это не сработало. Может быть, из-за заказа события, где добавлено (?).

Это другой способ управления исполнением события?

Или как я могу получить старое событие, чтобы сделать что-то вроде этого:

originalClickEvent = $('#button').doSomeMagicAndGetTheEvent('click'); 
$('#button').unbind(); 
$('#button').bind('click', function (event) { 
    if (valid()) originalClickEvent(); 
}); 

ответ

1

посмотреть здесь Remove all JavaScript event listeners of an element and its children?

После удаления слушателей событий вы можете прикрепить пользовательское событие.

Если я правильно понял, это вы ищете эффект: http://jsfiddle.net/ftGHq/

+0

$ . ('#button') отвязать(); отлично работает, но как мне получить старое событие? – PiTheNumber

+0

Я отредактировал свой ответ. Надеюсь, я правильно понял тебя. –

+0

Да, вы это сделали, и это очень творческое решение. Но, может быть, немного грязно;) – PiTheNumber

0

В случае событие щелчка просто обязан одной функции вы можете переписать эту функцию:

var oldFunction = theOldFunction; 
function myFunction(control) { 

    oldFunction(control); 
} 

$('#button').unbind(); 
$('#button').click(myFunction); 
Смежные вопросы