Ho riscontrato un problema con un progetto su cui sto lavorando. È un'applicazione web con un'interfaccia che esiste parzialmente dagli elementi di trascinamento.Impossibile trascinare un elemento pulsante in Firefox
Il problema è che gli elementi div trascinabili funzionano bene ma gli elementi del pulsante non coinvolgeranno il trascinamento in Firefox ma funzionano in Chrome. Penso che questo potrebbe avere qualcosa a che fare con il modo in cui Firefox gestisce gli eventi già esistenti del pulsante, che è probabilmente diverso da come Chrome fa questo.
So che posso usare l'interfaccia utente di jQuery, ma questo progetto non mi consente di farlo.
Ecco una jsfiddle del mio problema: http://jsfiddle.net/MJN6c/6/
Qualcuno sa come posso ottenere gli eventi di trascinamento per attivare i bottoni in Firefox?
Il codice:
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!");
}
che dire di jQuery regolare? –
Potrebbe essere una possibilità, dovrò chiedere. Ma se questa è l'unica soluzione (decente) di quella che non penso sarà un gran problema. – Levi
È un [bug di firefox] (https://bugzilla.mozilla.org/show_bug.cgi?id=646823), non sono riuscito a trovare soluzioni per questo ... Eventuali aggiornamenti dalla tua parte? – madpoet