Mam problem z projektem, nad którym pracuję. Jest to aplikacja internetowa z interfejsem, który częściowo istnieje poza przeciąganiem elementów.Nie można przeciągnąć elementu przycisku w przeglądarce Firefox
Problem polega na tym, że elementy div z możliwością przeciągania działają dobrze, ale elementy przycisków nie będą angażować przeciągania w przeglądarce Firefox, ale działają w przeglądarce Chrome. Myślę, że może to mieć coś wspólnego ze sposobem, w jaki Firefox obsługuje już istniejące zdarzenia na przycisku, co prawdopodobnie różni się od tego, jak to robi Chrome.
Wiem, że mogę zamiast tego używać interfejsu jQuery, ale ten projekt nie pozwala mi.
Oto jsfiddle mojego problemu: http://jsfiddle.net/MJN6c/6/
Czy ktoś wie jak mogę uzyskać zdarzenia przeciągnij, aby wywołać na przyciski w Firefoksie?
Kod:
var stage = document.querySelector('#drop');
var btnsAni = document.querySelectorAll('.btn-ani');
[].forEach.call(btnsAni, function (btn) {
btn.addEventListener('dragstart', dragStart, false);
btn.addEventListener('dragend', dragEnd, false);
});
stage.addEventListener('dragenter', dragEnter, false);
stage.addEventListener('dragleave', dragLeave, false);
stage.addEventListener('dragover', dragOver, false);
stage.addEventListener('drop', dragDrop, false);
function dragStart(e) {
if (e.stopPropagation) e.stopPropagation();
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('Text', this.id);
return false;
}
function dragEnd(e) {
e.preventDefault();
if (e.stopPropagation) e.stopPropagation();
return false;
}
function dragEnter(e) {
e.preventDefault();
if (e.stopPropagation) e.stopPropagation();
return false;
}
function dragOver(e) {
e.preventDefault();
if (e.stopPropagation) e.stopPropagation();
e.dataTransfer.dropEffect = 'copy';
return false;
}
function dragLeave(e) {
e.preventDefault();
if (e.stopPropagation) e.stopPropagation();
return false;
}
function dragDrop(e) {
e.preventDefault();
if (e.stopPropagation) e.stopPropagation();
alert("Dropped!");
}
co z regularnym jQuery? –
To może być możliwość, muszę zapytać. Ale jeśli to jedyne (przyzwoite) rozwiązanie, nie sądzę, że będzie to duży problem. – Levi
To jest [błąd firefox] (https://bugzilla.mozilla.org/show_bug.cgi?id=646823), nie mogłem znaleźć żadnych obejść dla tego ... Wszelkie aktualizacje po twojej stronie? – madpoet