編集: ここに私のサンプル コードを示すリンクがあります: http://www.singingeels.com/jqtest/
jquery-1.3.2.js、ui.core.js (最新バージョン)、および ui.draggable.js (最新バージョン) を参照する非常に単純なページがあります。
非常に簡単にドラッグできる div があります (もちろんマウスを使用します)。
<div id="myDiv">hello</div>
そしてJavaScriptで:
$("#myDiv").draggable();
これは完全に機能します。しかし、コードだけを使用して「ドラッグ アンド ドロップ」をシミュレートできる必要があります。私はほとんど動作していますが、問題は発生しているイベントが placeholder events であることです。
「ui.core.js」を開いて一番下までスクロールすると、次のように表示されます。
// These are placeholder methods, to be overriden by extending plugin
_mouseStart: function(event) { },
_mouseDrag: function(event) { },
_mouseStop: function(event) { },
_mouseCapture: function(event) { return true; }
シミュレーションでイベントが適切に拡張されていないのに、マウスでクリックすると拡張されるのはなぜですか? - _mouseDrag: プロパティを「ui.draggable.js」のオーバーライド拡張に従うよう強制する方法についてのアイデアはありますか?
これを解決することは非常に大きなことです。後で主な利点を示す予定です。
ありがとう - ティモシー
編集: ここに私のサンプル コードを示すリンクがあります: http://www.singingeels.com/jqtest/
編集 2: 上のリンクをクリックしてソースを表示...私がやろうとしていることを見ることができます。ここにスニペットがあります:
$(document).ready(function() {
var myDiv = $("#myDiv");
myDiv.draggable();
// This will set enough properties to simulate valid mouse options.
$.ui.mouse.options = $.ui.mouse.defaults;
var divOffset = myDiv.offset();
// This will simulate clicking down on the div - works mostly.
$.ui.mouse._mouseDown({
target: myDiv,
pageX: divOffset.left,
pageY: divOffset.top,
which: 1,
preventDefault: function() { }
});
});