Как переопределить помощник по умолчанию в jQuery в пользовательском помощнике - PullRequest
2 голосов
/ 09 октября 2008

Я создаю пользовательский помощник перетаскивания (в 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) не доставляет радости.

1 Ответ

5 голосов
/ 09 октября 2008

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...