Вы можете удалить прослушиватель событий, но вы должны передать точный прослушиватель, возвращенный при добавлении одного.
, например
//add moveend listener
var moveendListener = GEvent.addListener(source, "moveend", yourfunction);
//remove moveend listener
GEvent.removeListener(moveendListener);
или
//remove all listeners associated with an event
GEvent.clearListeners(source, "moveend") ;
РЕДАКТИРОВАТЬ: другой вариант - заставить функцию, которую вызывает слушатель, вести себя по-разному в разных условиях.
, например
function moveendHandler() {
if (isWhateverActive()) return;
//code to run if whatever is not active
}