【发布时间】:2011-08-06 16:03:21
【问题描述】:
在我们的旧系统中,我们使用 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 中,当鼠标按下时,我们调用这个函数:
function makeDraggable(element){
var target_id = '#' + element.id;
//alert(target_id);
$( target_id ).draggable({scroll:true,scrollSensitivity:100,scrollSpeed:100});
}
如果用户再次点击,则 span 是可拖动的。我需要的是让用户不必再次单击的能力...继续鼠标按下事件,就像我对 YUI 行所做的那样,
calEvent.handleMouseDown(ev);
请注意 - 我知道我可以让它们都可以在 Dom 上拖动。这不是我想要做的,因为可能有数百个,如果没有必要,我宁愿不使用这些资源。如果用户点击它们,我只想让它们可拖动。
我不是在寻找 Jquery UI 拖放的基础知识。我能做到。 :-) 我正在尝试一种更高级的方案来节省资源。
【问题讨论】:
-
您应该从 jQuery 教程站点:docs.jquery.com/Main_Page 开始,并查看可拖动的 API 站点:jqueryui.com/demos/draggable。那里有大量示例,我敢打赌,如果您先阅读如何使用这些函数,您会发现 jQuery 更容易。
-
@scrappedcola:仅仅因为她以不同的方式处理解决方案并不意味着她没有阅读 API 或她需要教程。以不同方式思考问题的人使编码变得有趣。