如何在使用cursorAt时获取JQuery UI draggable()对象的宽度和高度

时间:2013-06-06 22:01:19

标签: jquery jquery-ui

我正在实现JQuery UI Draggable()对象并添加了cursorAt()对象。我注意到我需要将可拖动物体居中,但不知道如何。我可以将顶部和左侧设置为0,但我想将框(可拖动对象)居中。那么如何获得可拖动对象的宽度和高度?

$('#gridColumn1').draggable({
    appendTo: 'body', 
    helper: 'clone', 
    start: function(e, ui) { ui.helper.addClass("dragEffect"); }, 
    //cursorAt: { top: 0, left: 0 }
    cursorAt: top: Math.floor(??? / 2), left: Math.floor(??? / 2)
});

1 个答案:

答案 0 :(得分:1)

我能得到的最接近的是在初始化时设置光标偏移量,这取决于所有可拖动类型是否相同。似乎cursorAt不接受函数。

http://jsfiddle.net/kFjJY/2/

var $dragitem = $("#gridColumn1");
$dragitem.draggable({
    appendTo: 'body', 
    helper: 'clone',
    start: function(e, ui) { ui.helper.addClass("dragEffect"); }, 
    cursorAt: { top: $dragitem.height()/2, left: $dragitem.width()/2 }
});

我注意到一个问题,当你使用ID选择器(#gridColumn1)时,克隆会丢失它的样式,所以请确保使用类选择器而不是id来设置样式。