如何在if语句中打开/关闭JQueryUI Draggable
How to toggle JQueryUI Draggable on/off in an if statement
我编写了一段代码(如下),用于在元素上打开/关闭JQuery Draggable。简而言之,当你点击一个名为的div按钮时,它会在上切换另一个名为的div的dragBlock
上的可拖动效果这花了我一段时间,但我终于让它工作。我的问题是,我不明白为什么下面的代码不工作,只有一个Draggable实例。主要是使用state参数的那个。
$(dragBlock ).draggable(state);
相反,它只在我使用
时起作用:$(dragBlock ).draggable(state);
$(dragBlock ).draggable(); // This line is needed for the code to work. Why?
这不是一个大问题,但我想知道为什么会这样,我想这里有人可能能够解释它。 jsfield 在这里:
代码如下:
$(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);
});
您应该在事件处理程序外部真正地使用.draggable()
,而在内部只使用.draggable(state)
。
调用.draggable()
是如何在元素上初始设置可拖动功能的。
调用.draggable('enable')
或.draggable('disable')
是一种启用或禁用已配置的可拖动元素的方法。这是一种与你已经设置好的可拖动元素交互的方式。
注意,通过在事件处理程序之外调用draggable(),您的默认初始状态现在将是enabled
。您需要立即禁用它,或者更改state
变量的初始值。
你可以初始化draggable,并使用这个(在事件处理程序之外)将其禁用
('#dragBlock').draggable({disabled: true});
然后在事件处理程序中只需要.draggable(state)
。
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 我想使用模态通过php文件发送邮件,并且我希望在提交关闭后关闭pop
- Html引导程序警报自动关闭困难
- 试图阻止Chrome通过扩展关闭
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- JqueryUI 工具提示可防止<选择>元素下拉列表在 IE 11 中保持关闭
- 带有Ajax表单的jQueryUI对话框获胜't用$(this).对话框关闭(“关闭”);
- 当您单击关闭按钮时,jQueryUI对话框会重新加载页面.出了什么问题
- 如何使jqueryui对话框没有关闭按钮
- 如何在单击jqueryui窗口的关闭按钮时触发弹出消息
- jqueryui对话框,打开新对话框并关闭后面的对话框
- 如何在JqueryUI对话框关闭时对其执行回调
- 关闭JQueryUI对话框只能工作一次
- 如何在if语句中打开/关闭JQueryUI Draggable
- JQueryUI模态聚焦于关闭按钮
- jQueryUI 对话框隐藏关闭 (X) 按钮,如果标题包含右对齐的文本.我该如何解决这个问题
- JqueryUI tooltip:仅当用户没有进入工具提示区域时,x秒后关闭
- 当打开或关闭jQueryUi对话框时,在MVC中触发控制器操作
- jQueryUI 启用与关闭对话框窗口相关的链接