在我们的旧系统中,我们使用了YUI,但新的使用了jQuery。我们有一个数据网格。在旧系统中,在mousedown事件中,我们使项目可拖动。鼠标停留,用户拖动了该项目。我们这样做是为了避免使所有东西都可以拖延以保护资源。旧代码看起来像:
function dragThisEntity(selfPtr,...) {
//This is the function called when a user clicks on a draggable item in a report.
var dragSpan = Dom.get('dragSpan'+refInst);
//We now have a div that can be dragged to the calendar
calEvent = new ZMRCalendarEvent('dragSpan'+refInst);
calEvent.handleMouseDown(ev);
在jQuery中,在mousedown上,我们称之为函数:
function makeDraggable(element){
var target_id = '#' + element.id;
//alert(target_id);
$( target_id ).draggable({scroll:true,scrollSensitivity:100,scrollSpeed:100});
}
如果用户再次单击,则跨度可拖动。我需要的是能够让用户不必再次点击...继续鼠标按下事件,就像我对YUI行所做的那样,
calEvent.handleMouseDown(ev);
请注意 - 我知道我可以让所有人在Dom准备就绪。这不是我想要做的,因为可能有数百个,如果没有必要,我宁愿不使用这些资源。如果用户点击它们,我只想让它们可拖动。
我不是在寻找Jquery UI拖放的基础知识。我能做到。 :-)我正在尝试一种更先进的方案来保护资源。
答案 0 :(得分:2)
只需在DOM上运行.draggable()
代码即可。但是,您需要使用其他选择器。
$(function ()
{
$('some selector').draggable({
scroll:true,
scrollSensitivity:100,
scrollSpeed:100
});
});
答案 1 :(得分:1)
jQuery UI .draggable()为您处理mousedown / mouseup事件。
您需要做的就是在文档加载时想要拖动的项目上调用draggable。然后,您可以回复事件。
示例位于API页面上:http://jqueryui.com/demos/draggable/#events