我如何处理jQuery中的事件?

时间:2011-04-15 22:03:51

标签: jquery events

在我们的旧系统中,我们使用了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拖放的基础知识。我能做到。 :-)我正在尝试一种更先进的方案来保护资源。

2 个答案:

答案 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