jQuery UI draggable:绑定到mousemove事件中的对象
jQuery UI draggable: bind to object in mousemove event?
我需要能够在mousemove
事件中动态地将HTML对象设置为jQuery UI可拖动对象;这是因为页面上的一些对象是在光标下动态创建的。
天真的方法不起作用(因为,我想,draggable()绑定到mousedown
事件)。有没有办法破解jQuery UI的可拖动插件,这样我就可以将其分配给mousemove
上的元素并立即开始拖动它?
提前谢谢。
实际上,在没有真正的鼠标向下的情况下,没有太多事情可以伪造拖动启动。不过,它可能会造成很多副作用,尤其是如果你想与其他插件组合,如可丢弃或可以排序,但根据你想要的内容,它可能已经足够好了。
这里有一个基本的例子,你可能可以扩展它以满足你的需求:
window.onmousemove = function(e) {
// for this example when you move over x = 200 an element is created
// and dragging starts
if (e.pageX > 200) {
// you create the element
var newEl = document.createElement('div');
document.body.appendChild(newEl);
newEl.classList.add('new');
// set as draggable
$(newEl).draggable();
// get the instance
var dragIns = $(newEl).draggable('instance');
// trigger a mousedown with a which parameter to fake a left click
$(newEl).trigger({type: 'mousedown', which: 1});
// you set some variable and call some methods directly
// on the instance to override normal behaviour
dragIns._mouseStarted = true;
// for mouse start you need the info of the mousemove event
dragIns._mouseStart(e);
dragIns.offset.click = {
left: 8,
top: 8
};
// run this only once
window.onmousemove = null;
}
}
.new {
width: 20px;
height: 20px;
background-color: blue;
position: absolute;
}
<script type="text/javascript" src="//code.jquery.com/jquery-2.1.4.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.11.4/themes/ui-lightness/jquery-ui.css">
<div>
</div>
相关文章:
- 如何从jQuery的事件对象中检索属性
- 如何在JavaScript中基于事件对象获取文件名
- 如何避免在这种情况下修改事件对象
- 如何在事件处理程序中获取 javascript 事件对象
- 如果在设置侦听器之前触发了 DOMContentLoaded 事件,如何检索“事件”对象
- addEvent 给出空事件对象
- 修改鼠标事件对象的“目标”以进行事件委派
- 如何将参数传递给backbone.js中事件对象中绑定的函数
- 从ng重复奇数内部的ng点击访问事件对象
- 如何从 React 中的事件对象访问自定义属性
- 如何将事件对象传递给对象中的函数
- 正在发送事件对象
- 是否可以获得“”的事件对象;当前“;或“;最后一个“;事件,而不将其作为处理程序中的参数接收
- 如何将事件对象字符串化
- 通过angular传递关于事件预防的信息;s事件对象
- Javascript事件对象:其中是选择器
- Meteor.js:如何检索事件对象的父元素的数据属性
- JavaScript 如何重新识别事件对象变量
- 事件对象在此代码中的工作原理
- 是为响应 DOM 事件而创建的多个事件对象