要素で JQuery Draggable のオン/オフを切り替えるコード ブロック (以下) を作成しました。つまり、buttonという div をクリックすると、 dragBlockという別のdivでドラッグ可能な効果のオン/オフが切り替わります。
これにはしばらく時間がかかりましたが、最終的に機能するようになりました。私が持っている質問は、以下のコードが 1 つのDraggableインスタンスだけで機能しない理由がわかりません。主に状態引数を使用するもの。
$(dragBlock ).draggable(state);
代わりに、これを使用した場合にのみ機能します。
$(dragBlock ).draggable(state);
$(dragBlock ).draggable(); // This line is needed for the code to work. Why?
これは大きな問題ではありませんが、これがなぜなのか知りたいのですが、ここの誰かが説明できると思います. JSfiddleはこちら:
コードは以下のとおりです。
$(document).ready(function() {
var state = "disable";
var button = document.getElementById("button");
var dragBlock = document.getElementById("dragBlock");
var toggle = function() {
if (state==="enable") {
state = "disable";
}
else if(state==="disable") {
state = "enable";
}
$(dragBlock ).draggable(state);
$(dragBlock ).draggable(); // This line is needed for the code to work. Why?
console.log(state);
};
button.addEventListener("click", toggle, false);
});