Пока вы нашли решение, и некоторые ответы здесь, кажется, дают вам хорошее предложение, я напишу это для полноты.
Хотя, на мой взгляд, правильный способ решения вашей проблемы - добавить класс css (помните, что вы можете добавить любое количество классов по своему усмотрению) к своей "кнопке"
(где кнопка может быть элементом любого типа) и проверить наличие этого класса в вашем обработчике кликов с помощью решения, подобного этому:
$('button.one').addEvent('click', function(){
if(this.hasClass('disabled'))return;
alert('You just clicked me, guy!');
});
как в этом примере:
http://jsfiddle.net/kentaromiura/CUeC4/
Другой путь - добавить пользовательское событие, подобное этому:
Element.Events.enabledClick = {
base:'click',
condition: function(event){
var trigger = true;
if(this.hasClass('disabled')){
trigger = false;
}
return trigger;
}};
поэтому в любое время, когда вам нужно перевести обработчик событий в спящий режим, вы просто добавляете «отключенный» класс на нужную кнопку и забываете его, чтобы повторно включить событие, просто удалите «отключенный» класс,
вместо addEvent ('click', ...) вы просто используете addEvent ('enabledClick', ...)
на этой скрипке тот же пример, что и выше, используя эту технику:
http://jsfiddle.net/kentaromiura/yUnqw/
В моем примере я только что использовал класс .disabled в css для стилизации кнопки как отключенной, но если вы хотите, чтобы она исчезла, вы можете использовать tween для установки прозрачности:
http://jsfiddle.net/kentaromiura/KLqAc/