Перетаскивание jQuery - обратная инженерия uiTokenizer Facebook в разделе «Искусство и интересы»

Я » 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 () ...: - \

Мы будем очень признательны за любую помощь, которую вы можете предложить.

ОБНОВЛЕНИЕ: Чтобы ответить на ваши комментарии ... Если вы перейдете по ссылке JSFiddle и перетащите элемент на другой элемент ... Он должен немедленно убрать его с дороги во всех направлениях. Чтобы увидеть сравнение моего и Facebook, проверьте их на https://www.facebook.com/ / избранное, затем нажмите кнопку «Изменить».

Независимо от того, используется ли метод «Допуск» что не так, список их интересов - это то, что я хочу скопировать. Я даже не знаю, что не так с областью допуска, я хочу добиться того, что они делают.

Надеюсь, это поможет!

40
задан Joshua F. Rountree 28 March 2012 в 18:29
поделиться