6

質問:

jQuery を使用して、クリック アンド ホールド イベントを模倣するにはどうすればよいですか?


私は現在、頭を壁にぶつけていますが、どうすればいいのかわかりません!

Google やフォーラムでも検索してみましたが、役に立ちませんでした。

現在の例では、jQuery UI の.draggable().

理想的には、次のことをしたいと思います。

  • でクリック/マウスダウンを実行しますdiv
  • クリック アンド ホールド イベントを模倣し、要素を自由に移動できるようにします。
  • 次のクリック/マウスダウンで、クリック アンド ホールド イベントを終了します。

次のような機能を試すと:

$("#drag").draggable().mousedown(function(e){
    e.preventDefault();
    return $(this).mousedown();
});

その後、無限ループが発生し、最終的にブラウザーがクラッシュします。.mousedown()ただし、一定のイベントを開始する方法はわかりません。

これは私が現在持っているもののデモです: http://jsfiddle.net/vPruR/16/

どんな助けでも大歓迎です!

4

2 に答える 2

8

クリックアンドホールドをシミュレートするオプションはないと思います。また、ブラウザーへの依存度が高くなりすぎる可能性があります。

したがって、以下のように試すことができます。

var click = false,
top = null,
left = null;

$(document).bind('mousemove', function (e) {
   if (click == true) {
      $('#drag').css({
         left: e.pageX - left,
         top: e.pageY - top
       });
    }
});

$('#drag').draggable().click(function(e) {
    top = e.pageY - $('#drag').position().top; 
    left = e.pageX - $('#drag').position().left;
    click = !click;
    return false;
});

$('html').click(function() {
    click = false;
});

デモ: http://jsfiddle.net/dirtyd77/qbcQn/

于 2013-01-21T19:19:27.923 に答える