2013-11-15 2 views
1

Хорошо, у меня есть инструмент, который я создаю, который вызывает функции, которые устанавливают обработчики событий JQuery, но результат состоит в том, что одни и те же обработчики будут задаваться снова и снова при вызове различных функций. Он работает как ожидалось: действие самого последнего обработчика называется тем, который выполняется. Разве это вызывает беспорядок? Другими словами, когда я помещаю событие щелчка на что-то, а затем еще одно, первый из них все еще существует? Если да, то как его удалить?Несколько событий кликов - беспорядок?

Спасибо!

Вот что я имею в виду, для ясности:

$('#ele').click(function() { 
    Do Something 
} 
$('#ele').click(function() { 
    Do Something Else 
} 
+1

Трудно дать вам совет по коду, который мы не видим. –

+0

Я обновил исходное сообщение. –

ответ

2

Использование click будет Добавить новый Нажмите Handler

Это будет печатать на консоль "первый второй"

$("#test").click(function() { console.log("first"); }); 
$("#test").click(function() { console.log("second"); }); 

You может использовать unbind, чтобы удалить предыдущий обработчик кликов. Это будет печатать только "второй" утешать

$("#test").click(function() { console.log("first"); }); 
$("#test").unbind("click").click(function() { console.log("second"); }); 

jsFiddle

+0

Вот на что я надеялся! Благодарю. –

+0

@JS Пожалуйста, повторите мой ответ, когда я проверил свои предположения, и 'click' продолжит добавлять новые обработчики событий. – jasonscript

+0

Хорошо, спасибо, я ценю двойную проверку! –

0

Вы можете использовать $(selector).toggle(), как это:

(function ($){ 
    $("#ele").toggle(a, b); 
})(jQuery); 

А вот Demo, надеюсь, что это может помочь вам: р

Смежные вопросы