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



我正在实现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)
});

我能得到的最接近的是在初始化时设置光标偏移量,这依赖于所有可拖动类型都是相同的。看起来好像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的样式。

最新更新