2016-03-31 40 views
0

私はアイテムをドラッグするためにJS関数を作成しました。&が残っています。私はボタンをクリックした後にドラッグを停止する必要があります。どのように私はmousemoveを停止するのですか?mousemoveを停止するにはどうすればよいですか?

私は$('.draggable').off('mousemove');e.stopPropagation();を試しましたが、どちらもうまくいきませんでした。

A JSFiddleは千の言葉の価値がある、ここでの問題を参照してください:https://jsfiddle.net/kthornbloom/k2k928j1/

答えて

0

あなたの問題は、あなたがoff呼び出しがonと同じ要素ではない

$('.draggable').parents().on('mousemove', function(e) { ... }); 

$('.draggable').off('mousemove'); 

をやっているということですコール。

$('.draggable').parents().off('mousemove'); 

に変更してください。

...ハンドラを格納して明示的に削除する必要があります。

0

はあなたのjsfiddleでこれを試してみてください:mouseupに加えて

$('#stop').on('click',function(){ 
    //$('.draggable').off('mousemove'); 
    $('.thing').off(); // Removes all event handlers. 
}); 
+0

ボックスの移動を停止していないようです。 – kthornbloom

+0

ボックスを移動する前に、コードを編集してから停止リンクをクリックしましたか?あなたのコードを編集するとき、私のために働く。 – Clomp

+0

jQueryがなぜこのコードを実行できないのか分かりません: '$( '。draggable')。off( 'mousemove');'このコード '$( '。thing')。off( 'mousemove') ; '彼らのAPIドキュメントがそれを行うことが完全に正当であることを示すとき。 (http://api.jquery.com/mousemove/の追加の注記を参照してください)これはライブラリのバグかもしれません。 – Clomp

0

mouseleaveイベントを使用します。 https://jsfiddle.net/k2k928j1/2/

+0

こんにちはオスカー、申し訳ありませんが、これは説明するのが難しいです。私はボックスがmouseleaveイベントとなる間に移動し続けるようにします。私はボタンをクリックした後で止めることができます。 – kthornbloom

+0

ああ、そうです。たぶんあなたは次のようなものが欲しいと思うかもしれません:https://jsfiddle.net/k2k928j1/3/ –

2

「ドラッグ可能」クラスを削除するだけです。

$('.draggable').removeClass('draggable');

https://jsfiddle.net/a1vvmszq/

+0

あなたはまったく正しいからです。私は特定の質問に答えたので、私はもう一方の答えを受け入れました。 – kthornbloom

関連する問題