События “перетаскивания” браузера: кто-либо может восполнить пробелы?

Вы можете использовать toDateString() вместе с split() или slice() для получения желаемого выхода.

7
задан sam 26 January 2009 в 03:06
поделиться

3 ответа

Я нашел способ обработать onDragLeave через делегацию события.

Просто добавьте событие для контроля "dragover" на всем документе. Когда источник события становится Вашим рассматриваемым элементом, установите флаг, и после того как источник события больше не, что элемент, запустите "dragleave" событие.

Примечание:

  • Должен будет быть изменен так, чтобы "e.source == obj" был на самом деле "obj.childOf (e.source)"..., так как исходный элемент может быть потомком рассматриваемого объекта.
  • Требует, чтобы платформа обработки событий выяснила, какой "источник" основан на браузере.

К сожалению, похоже, что отсутствие Safari "ondrop" не может быть зафиксировано..., это просто никогда не запускается.

Как достигнуть "dragleave" в FF (хорошо, все браузеры):

var setOnDragLeave = function(obj, fn){
    var on=false;
    var dragover = function(e){
        if (on){
            if (e.source!=obj){
                on = false;
                e.eventname = "dragleave";
                fn.call(obj, e);
            }
            return;
        }else{
            if (e.source==obj) on = true;
            return;
        }
    }
    addEvent(document.documentElement, "dragover", dragover);
}
setOnDragLeave(obj, function(e){ logEvent(e); });

Я искренне надеюсь, что кто-то еще на этой планете может использовать это...

6
ответ дан 7 December 2019 в 10:09
поделиться

Хорошая статья. Я также ищу эквивалент ondrop/ondragdrop в Safari. Однако существует возможное обходное решение для "внутреннего" случая перетаскивать-отбрасывания, т.е. источник перетаскивания и цель отбрасывания находятся в том же документе.

IE поддерживает события ondragstart, ondrag и ondragend на исходном элементе перетаскивания. Safari 3 запускает их также. Firefox3 запускает ondrag и ondragend, но не ondragstart (хотя документация предлагает, чтобы это было должно). Так или иначе, в зависимости от Вашего сценария, Вы можете использовать ondragend для обнаружения, когда операция перетаскивать-отбрасывания завершается.

0
ответ дан 7 December 2019 в 10:09
поделиться

Кажется, Firefox реализует событие "dragleave" как "dragexit". Только что узнал об этом сейчас. И это работает.

0
ответ дан 7 December 2019 в 10:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: