В твоём примере ты просто добавил ещё один обработчик события на свой DIV, но не заменил предыдущий.
$(''#mydiv'').click(function() { return false; });
Этот код добавляет обработчик клика, не зависимо от того, есть ли у твоего DIV-а обработчики этого события, или нет. В JavaScript одному и тому же объекту можно назначить множество разных обработчиков событий, все они сработают при возникновении этого события.
Для того, чтобы удалить обработчик в старых версиях jQuery, использовалась функция .unbind():
$(''#mydiv'').unbind(''click'');
С выходом jQuery 1.7 модель событий была переработана, и хотя методы .bind() и .unbind() по прежнему доступны для обратной совместимости, рекомендуется вместо них использовать соответствующие им методы on() и off().
$(''#mydiv'').click(function() { return false; }); // Добавляет ещё один обработчик события $(''#mydiv'').off(''click''); $(''#mydiv'').on(''click.mynamespace'', function() { /* Что-то делаем */ }); $(''#mydiv'').off(''click.mynamespace'');
Есть также функция .one(), которая позволяет повесить обработчик события, который сработает только один раз, а затем удалится.
$("mydiv").one("click", function() { // Что-то делаем });