-1

私は現在、独自のJSドラッグアンドドロップスクリプトをコーディングしようとしています(好奇心と退屈さから、フレームワークを使用するとはるかに簡単になると思います)。私の目的は完全に機能するFirefox3バージョンです。IEは今すぐ待つことができます。

奇妙なバグで立ち往生しました。初めてdivをドラッグすると、問題なく動作します。2回目にドラッグすると、ボタンを離しても動かなくなり、もう一度クリックして下に移動する必要があります。3番目以降のドラッグは、再び問題なく機能します(!?!)。

何が起こるかについては、[元のページ] [1](私が言ったように、今のところFireFoxのみ)を参照してください。すべては、中間移動にdocument.captureEvents(Event.MOUSEMOVE)を使用して、2つのイベント(onmousedownとonmouseup)を持つdivとして実行されます。スクリプトは[ここ][2]にあります(下部のajax部分は無視してください。いくつかの追加のトリックのために準備されており、取り出してもバグは残ります)。

過去に似たようなことをしたことがあるか、どこかで間違いを見つけた場合はお知らせください。全体を回避するためのより良い方法があるかもしれないことを私は知っていますが、私は特に私のアプローチを機能させる方法を探しています。

編集:ChromeとSafariは動作します。

編集:リンクをオフラインにして、新しいバージョンで作業します。

4

1 に答える 1

2

それがあなたが求めているものであれば、最初にFF3でこれが機能します。

これは聞きたいことではありませんが、mootools や jquery などから DnD メソッドを選択することを強くお勧めします。効率の観点から言えば、DnD はコードを作成するのは恐ろしいことです (自分で数回実行しました)。発生する多数のバグを解決する能力がなければ (ここで攻撃するつもりはありません)、非常に大きな問題になるでしょう。既成の堅牢な成熟した実装を使用する場合と比較して、時間の無駄になります。それ難しいことです。

独自のコードで続行する場合 (演習として、またはプライドから - 私はそれを理解できます :) ) この種の問題は通常、他のイベントが原因であると思われる場所でイベントがキャプチャされないことの結果です。最初に邪魔になった、思った場所にフラグが設定されていない、または(またはそのために)予期しないポイントでコードから抜け出すエラー。イベントトリガーをログアウトして、何が起こっているのかを論理的に追跡してみてください。

それがどのように機能しなかったかをより詳細に定義できれば 、それをさらに追跡できるかもしれませんが (私には再現できないように見えるため)、堅実なライブラリの利点を検討することをお勧めします。

于 2008-12-01T16:10:58.347 に答える