14

これを行うために何かを試みましたが、常に同じエラーが発生します

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

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

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

編集:ドラッグできないクラスの要素があることがわかりました(エラーを見ると意味があります)。今、エラーをスローせずにすべてのドラッグ可能なものを無効にする方法を見つける必要があります:)

4

5 に答える 5

33

これを試して:

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

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

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

後でドラッグを許可したい場合。

于 2012-11-29T16:22:36.813 に答える
5

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

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

これは使用しています

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

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

同じことができないという違いはありますか?同じ構文を持っているようです。

于 2012-11-29T16:34:31.420 に答える
2

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

ここに例があります:

http://jqueryui.com/draggable/

jquery-ui.js ライブラリを「含め」ましたか?

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

于 2012-11-29T16:17:57.383 に答える
0

1つのボタン有効化と無効化

$("#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> 
于 2016-10-26T23:53:39.643 に答える
-1

.unbind('ondrag') を使用して、要素からイベントを削除してみてください。

申し訳ありませんが、$("tooltip").unbind('draggable') である必要があると思います。イベント名が 100% 確実ではありません。

于 2012-11-29T16:19:46.307 に答える