私が取り組んでいるプロジェクトに問題があります。これはドラッグアンドドロップ要素から部分的に存在するインターフェースを備えたWebアプリケーションです。Firefoxのボタン要素をドラッグできない
ドラッグ可能なdiv要素は正常に機能しますが、ボタン要素はFirefoxではドラッグには関与しませんが、Chromeで機能します。これは、Firefoxがボタンの既存のイベントを処理する方法と関係している可能性があります。これは、Chromeがこれをどのように行うかとは多分異なります。
代わりにjQuery UIを使うことができますが、このプロジェクトでは私を許可しません。ここで
は私の問題のjsfiddleです: http://jsfiddle.net/MJN6c/6/
誰もが、私はドラッグイベントは、Firefoxのボタンでトリガするために得ることができる方法を知っていますか?
コード:
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!");
}
どのような定期的なjQuery? –
それは可能性があります、私は尋ねる必要があります。しかし、これが唯一の(まともな)解決策であれば、私はそれが多くの問題になるとは思わない。 – Levi
それは[firefox bug](https://bugzilla.mozilla.org/show_bug.cgi?id=646823)ですが、私はその回避策を見つけることができませんでした。 – madpoet