Показать сообщение отдельно
  #1 (permalink)  
Старый 15.08.2013, 18:15
Аватар для Arramis
Кандидат Javascript-наук
Отправить личное сообщение для Arramis Посмотреть профиль Найти все сообщения от Arramis
 
Регистрация: 22.07.2013
Сообщений: 104

отмена выполнения обработчика...
приветствую всех...
вопрос такой: как остановить выполнение обработчика события из другого обработчика этого же события ??
конкретно в моем случае - я пишу плеер и нужно чтобы при клике на play устанавливался второй обработчик на ту же кнопку который будет останавлить проигрывание первого обработчика (тоесть обработчика который проигрывает), и наоборот (удалялся второй обработчик и ставился первый обратно чтобы снова начать проигрывание)
привожу пример :
var play = function() {
	doSomething();
	removeHandler(buttonPlay, "click", pause);
}

var pause = function() {
	doAnotherthing();
	removeHandler(buttonPlay, "click", play);
}

addHandler(buttonPlay, "click", play);
addHandler(buttonPlay, "click", pause);

function addHandler(element, event_name, handler) {
	try {
		element.addEventListener(event_name, handler, false);
	}catch(e) {
		element.attachEvent("on" + event_name, handler);
	}
}

function removeHandler(element, event_name, handler) {
	try {
		element.removeEventListener(event_name, handler, false);
	} catch(e) {
		try {
			element.detachEvent("on" + event_name, handler);
		} catch(ee) {
			element["on" + event_name] = null;
		}		
	}
}

но по такой логике второй обработчик начинает выполняться только после того, как первый закончит свое выполнение, как сделать чтобы второй обработчик останавливал (прерывал) первый во время его выполнения второго и наоборот?
Ответить с цитированием