2008-10-09 3 views
2

Я создаю помощник пользовательского перетаскивания (в JQuery):Как переописать помощник Jquery по умолчанию в пользовательском помощник

$('.dragme', element).draggable({ 
    appendTo: 'body', 
    helper : custom_drag_helper, 
    opacity : 0.5 
}); 

Я делаю это, потому что я хочу иногда клонировать и иногда делаю функциональные возможности по умолчанию , т. е. перетащить исходный элемент.

function custom_drag_helper() { 
    if (/*criteria on when to move instead of clone */) { 
     return $(this); /* this is what helper: 'original' seems to do */ 
    } else { 
     clone = $(this).clone(); /* this is what helper: 'clone' does */ 
     return clone; 
    } 
} 

Но я не могу заставить исходную функциональность работать вообще. return clone() работает отлично, но return $ (this) не дает радости.

ответ

5

Хорошо, когда печатая этот вопрос, я сделал немного больше источника дайвинга и обнаружил эту маленькую линию:

if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position"))) 
     this.element[0].style.position = 'relative'; 

, который я не нашел в тот же день я провел, пытаясь решить эту проблему. Добавление this.style.position = 'relative'; в мой код выше исправил проблему!

Смежные вопросы