Я использую $.special.event.drag
и $.special.event.drop
и jQuery обратное проектирование facebook uiTokenizer, потому что jQuery UI sortable/draggable является тяжелым и медленным.
Мой вопрос, я думаю, связан с математикой толерантности для принятия решения о том, когда вводить элемент-заполнитель.
Я очистил много этого кода, так как я впервые написал его, но предпосылка все еще существует и должна работать для этого вопроса.
Вот код и логика: http://jsfiddle.net/JoshuaIRL/kf9Qt/ для тестирования.
В области, где мне нужен кто-то, на что посмотреть, будет область "допуска" функции $.drop, если вы ее найдете.
$.drop({
mode:'intersect',
tolerance: function( event, proxy, target ){
var testV = event.pageY > ( target.top + target.height / 2 );
$.data(target.elem, "drop+reorder", testV ? "insertAfter" : "insertBefore" );
return this.contains( target, [ event.pageX, event.pageY ] );
}
});
Facebook, похоже, делает "insertAfter", когда ваш фактический курсор попадает в другой элемент.
Я думаю, что это тоже может быть сердцем:
if ( drop && $(drop).is('.uiToken') && ( drop != dd.current || method != dd.method ) ){
$( this )[ method ]( drop );
dd.current = drop;
dd.method = method;
dd.update();
refreshTokens(clickOffset);
placeholder.insertAfter($(this));
}
Кроме того, мне нужно выяснить, как обеспечить, чтобы я не перевязывал свои элементы с помощью этого глупого открытого метода $.drop()
...: -\
Любая помощь, которую вы можете предложить, будет с благодарностью.
UPDATE: Чтобы ответить на ваши комментарии... Если вы перейдете на ссылку JSFiddle и перетащите элемент над другим элементом... Он должен немедленно ударить его по пути во всех направлениях. Чтобы посмотреть сравнение с моим против Facebook, проверьте их на https://www.facebook.com//фаворитах, затем нажмите кнопку "Изменить".
Независимо от того, является ли метод "Толерантность" неправильным, их список интересов - это то, что я ищу, чтобы дублировать. Я даже не знаю, является ли область толерантности неправильной, я хочу достичь того, что они делают.
Надеюсь, это поможет!