Вы можете использовать toDateString()
вместе с split()
или slice()
для получения желаемого выхода.
Я нашел способ обработать onDragLeave через делегацию события.
Просто добавьте событие для контроля "dragover" на всем документе. Когда источник события становится Вашим рассматриваемым элементом, установите флаг, и после того как источник события больше не, что элемент, запустите "dragleave" событие.
Примечание:
К сожалению, похоже, что отсутствие 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); });
Я искренне надеюсь, что кто-то еще на этой планете может использовать это...
Хорошая статья. Я также ищу эквивалент ondrop/ondragdrop в Safari. Однако существует возможное обходное решение для "внутреннего" случая перетаскивать-отбрасывания, т.е. источник перетаскивания и цель отбрасывания находятся в том же документе.
IE поддерживает события ondragstart, ondrag и ondragend на исходном элементе перетаскивания. Safari 3 запускает их также. Firefox3 запускает ondrag и ondragend, но не ondragstart (хотя документация предлагает, чтобы это было должно). Так или иначе, в зависимости от Вашего сценария, Вы можете использовать ondragend для обнаружения, когда операция перетаскивать-отбрасывания завершается.
Кажется, Firefox реализует событие "dragleave" как "dragexit". Только что узнал об этом сейчас. И это работает.