在拖动Jquery UI Draggable时定位cursorAt

时间:2014-02-06 16:38:39

标签: jquery jquery-ui drag-and-drop jquery-ui-draggable

我希望有人可以帮助我。我认为用jQuery Draggable查看CursorAt选项会很简单,但也许我错过了一些东西。基本上我想将拖动元素放在我的鼠标光标下方的左上角或右上角位置。

我希望我能做到:

$(this).draggable("option", "cursorAt", {
                                        left: 0,
                                        top:0
                                    }); 

top / left属性会改变,但似乎不想工作。

以下是我的表现:

$( "#matches ul li:first-child" ).draggable({ 
                            addClasses: true, 
                            snap: true,
                            cursor: "crosshair",
                            start: function(event, ui) {
                                $(this).draggable("option", "cursorAt", {
                                    left: Math.floor(this.clientWidth / 2),
                                    top: Math.floor(this.clientHeight / 2)
                                }); 
                            },
                            drag: function(event, ui) {
                                var dragged = ui.helper;
                                var dragged_data = dragged.data('draggable');
                                var direction = (dragged_data.originalPosition.left > dragged.position().left) ? 'left' : 'right';
                                $( "#matches ul li:first-child" ).removeClass('left right').addClass( direction );
                                if( direction == "left"){
                                     $(this).draggable("option", "cursorAt", {
                                        left: 0,
                                        top:0
                                    }); 
                                }else{
                                     $(this).draggable("option", "cursorAt", {
                                        right: 0,
                                        top:0
                                    }); 

                                }   
                            },                      
                            stop: function(event, ui) {
                                $( "#matches ul li:first-child" ).removeClass('left right');
                            }


                    });

一如既往,提前谢谢。

Ps我也试过简单的顶级&左边0并使用css margin-left:+/-元素的宽度。

1 个答案:

答案 0 :(得分:0)

你想要这样的东西吗? e http://jsfiddle.net/deveshz/YvmFf/2/

或者将光标固定在左上角?