Вы также можете сделать это по-другому. На вашем startDrag вы перестаете наблюдать за объектом. Затем вы снова наблюдаете щелчок, который приводит к функции enddrag, которая воссоздает первый обработчик событий.
function onDragStart() {
Event.stopObserving(this.OBJECT,'click');
Event.observe(this.OBJECT,'click',this.onDragEnd.bindAsEventListener(this));
}
function onDragEnd() {
Event.stopObserving(this.OBJECT,'click');
Event.observe(this.OBJECT,'click',this.PREVIOUSFUNCTION.bindAsEventListener(this));
}
Это поймает оставшееся событие щелчка, которое все еще активно после enddrag, чтобы просто воссоздать оригинальный обработчик. Я надеюсь, что это поможет кому-то там:)