5

DOM に新しい要素を挿入し、新しい要素を再度クリックせずに、mousedownすぐにドラッグを開始したい (つまり、 trigger ) 。dragstart

私は自分のプロジェクトで d3.js をよく使用しています。dragstartしかし、d3 を使用してイベントをトリガーできるかどうかわからないので、jQuery を使用してみました。

$("circle#pen").trigger("dragstart");

しかし、これはうまくいきません。

これはjsFiddleへのリンクです。ここで、で「ペン」を作成しようとすることで問題を示しますmousedown。ユーザーがペンをドラッグすると、線が描画されます。dragendペンを外すと線が消えます。ただし、ペンを初期化する必要があります。その後、新しいクリックでドラッグできます。これは、問題を示すためだけのものです。

Here is a related question for jQueryですが、それに対する良い答えはありません。

4

2 に答える 2

2

jquery-simulateという jQuery ライブラリを見つけました。それを使用して、次のように問題を解決しました。

var coords = {  
    clientX : d3.event.x,
    clientY : d3.event.y
};

d3.select("g#selects").append("circle")
    .attr("id", "pen")
    .attr("r", 10)
    .attr("cx", coords.clientX)
    .attr("cy", coords.clientY)
    .call(dragPen);

$("circle#pen").simulate("mousedown", coords);

要素#penが挿入され、ワンクリックでドラッグが開始されるようになりました。query-simulateのようなライブラリのない解決策を知っている場合は、お知らせください。

于 2013-06-23T12:43:44.140 に答える
0

jQuery のトリガー メソッドのしくみを誤解していると思います。イベントに添付したコードをトリガーするように設計されています。ユーザーの入力が発生するという意味で何かが発生することはありません。

したがって、問題を解決するには、要素を移動するためのロジックを定義するイベントを要素にアタッチする必要があります。

于 2013-06-22T23:05:23.590 に答える