我编写了一段代码(如下),用于在元素上打开/关闭 JQuery Draggable。简而言之,当您单击一个名为按钮的 div 时,它会在另一个名为dragBlock的 div上打开/关闭可拖动效果。
这花了我一段时间,但我终于让它工作了。我的问题是我不明白为什么下面的代码仅适用于一个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);
});