2

<div>スクリプトで作成され、別の に追加される要素があります<div>。私は持っている:

 coverElm.onmousedown = mouseDownEventHandeler;
 document.onmouseup = mouseUpEventHandeler;
 document.onmousemove = mouseMoveEventHandeler;

関数が定義されていて、うまく機能し、マウスがブール値で押されているかどうかを追跡しmouseDownます。

問題- マウスを押し下げて離すと、 がdocument.onmouseup処理されません。魔女の中にあるものは何でもドラッグするのは<div>、ほんの数語のテキストだからだと思います。テキストなしでもこの問題があります。

だから私が探しているのは、この奇妙なドラッグ動作を防ぐ方法、またはonmousedragマウスが押されているかどうかを確認する方法です-マウスアップとマウスダウンの方法を使用しないでください

ここに私の機能があります:

function mouseUpEventHandeler(e) {
        mouseDown = false;
}
function mouseDownEventHandeler(e) {
        mouseDown = true;
}
function mouseMoveEventHandeler(e) {
        if (mouseDown) {
               coverElm.innerHTML ="<p>Mouse down and dragging</p>";
        }
}
4

2 に答える 2

2
$j(divID).bind('dragstart', function (event) { event.preventDefault() });

皆さんありがとう

于 2012-08-15T18:45:57.270 に答える
2

これは、90% の確率で、ドラッグされた要素がmouseupイベント リスナーを持つ要素の前にあり、その下の親要素がイベントを取得しないためです。

通常、これaddEventListenerはイベントのインライン形式ではなく、を使用することで修正できます。これを修正する別の方法は、ドラッグされた要素eventListenerにマウスが離されたときの for を与えることです。また、要素が (プロパティdivを介して) ドラッグを開始するたびに、他のすべての要素の前に を配置することもできます。zIndex

編集: 概念実証コードを作成しました: http://jsfiddle.net/2BkEM/5/

于 2012-08-15T18:09:49.190 に答える