Ну, во-первых, это работает для меня в FF3, если вы об этом и просите.
Это не то, что вы хотите услышать, но я настоятельно рекомендую вам выбрать метод DnD из mootools, jquery или аналогичного. С точки зрения эффективности, DnD - ужасная вещь, чтобы кодировать (делал это несколько раз сам), и если вы не в состоянии (здесь не обижаться) устранять многочисленные возникающие ошибки, это просто будет огромным пустая трата времени по сравнению с простой готовой реализацией. Это это трудная вещь.
Если вы делаете то, что продолжаете с вашим собственным кодом (в качестве упражнения или из гордости - я могу это оценить :)), такого рода проблемы обычно являются результатом того, что событие не было зафиксировано там, где вы думаете, потому что сначала возникло какое-то другое событие: флаг не был установлен там, где вы думаете, или (или из-за) ошибки, которая вырвалась из вашего кода в неожиданный момент. Попробуйте логически отследить, что происходит, выйдя из системы событийных триггеров.
Если бы вы могли определить как , это не сработало более подробно, я мог бы проследить это дальше (так как я, похоже, не могу воспроизвести), но я предлагаю вам изучить преимущества солидная библиотека.