Кэшируйте обработчик в переменную. Затем связывайте и снимайте привязку, используя эту ссылку.
Вместо привязки вашего события клика:
$('#test').bind('click', function(){
alert('hi!');
});
Объявление функции для переменной:
var clickHandle = function(){
alert('hi!');
};
А затем связать, используя имя переменной:
$('#test').bind('click', clickHandle);
Затем вы можете отменить привязку к определенному обработчику кликов:
$('#test').unbind('click', clickHandle);
Тогда вы все равно можете повторно связать той же функцией:
$('#test').bind('click', clickHandle);
Взглянул на источник. Событие привязано к контекстному меню, а не к клику.
Вы можете получить доступ к функции через свойство data.events элемента (аналогично тому, что говорил j3frea). Посмотрите на этот пример fiddle для полного разрешения.
По сути, вы можете сделать это:
var cachedHandler = null;
// disable
cachedHandler = $('#demo2').data('events').contextmenu[0].handler;
$('#demo2').unbind('contextmenu', cachedHandler);
// enable
$('#demo2').bind('contextmenu', cachedHandler);