web-dev-qa-db-ja.com

jqueryドラッグ可能な有効化と無効化

私はこれをするために何でもしようとしましたが、常に同じエラーが発生します

$(".tooltip").draggable('disable');

エラー:初期化の前にドラッグ可能のメソッドを呼び出すことはできません。メソッド 'disable'を呼び出そうとしました

初期化前?それで、実際にドラッグされる前にオプションを削除することはできませんか?私もdroppableを試してみましたが、このエラーが発生せずにそれらを無効にできていないようです。

編集:私はドラッグできないクラスを持つ要素を持っていることがわかりました(これはエラーを見ると理にかなっています)。今、私は方法を見つけなければならないので、エラーをスローせずにすべてのドラッグ可能オブジェクトを無効にします:)

13

これを試して:

$(".tooltip").draggable({ disabled: true });

これにより、ドラッグ可能な状態が無効な状態で初期化されます。次に使用できます

$(".tooltip").draggable("enable");

後でドラッグを許可する場合。

29
Barmar

このjsfiddleでシナリオを再現できました。

http://jsfiddle.net/dboots/NDZKY/

これは使用しています

$('.draggable').draggable('disable');

そして

$('.draggable').draggable('enable');

同じことを行うことができない何か違うことはありますか?同じ構文を使用しているようです。

5
Don Boots

ドキュメントを見てください http://api.jqueryui.com/draggable/

そしてここに例:

http://jqueryui.com/draggable/

Jquery-ui.jsライブラリを「インクルード」しましたか?

このフィドルを試してみてください! http://jsfiddle.net/3Lrg2/23/

2
Luca Davanzo

1つのボタンからenableおよびdisableを使用します

$("#container").draggable({disabled:false});
$("#container").draggable({disabled:true});

以下の簡単な例:

<div id = "container"></div>
<button id = "control"></button>
<script>
  $(document).ready(function()
    {
       $("#control").click(function()
          {
            if($("#control").hasClass("active")
              {
                $("container").draggable({disabled:true});
                $("control").removeAttr("class","active");   
              }
            else
              {
                $("container").draggable({disabled:false});
                $("control").attr("class","active");
              }
          });
    });
</script> 
0
Photon Khan