Je suis d'ingénierie inverse facebook du uiTokenizer l'aide d' $.special.event.drag
et $.special.event.drop
et jQuery parce que jQuery UI sortable / draggable est lourd et lent.
Ma question est je pense lié à la tolérance mathématiques permettant de décider d'injecter de l'espace réservé à l'élément.
J'ai nettoyé un grand nombre de ce code depuis que j'ai commencé à l'écrire, mais le principe est toujours là et devrait fonctionner pour cette question.
Voici le code et logique: http://jsfiddle.net/JoshuaIRL/kf9Qt/ pour les tests.
La région, j'ai besoin de quelqu'un à regarder serait la "tolérance" de l' $.drop, si vous ne trouver pour elle.
$.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 semble faire un "insertAfter" lorsque votre curseur en frappe un autre élément.
Je pense à ce qui pourrait être le cœur de celui-ci:
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));
}
Aussi, j'ai besoin de comprendre comment s'assurer que je ne suis pas sur de liaison mes éléments avec cette stupide ouvertes, $.drop()
méthode ... :-\
Toute aide que vous pouvez offrir sera grandement apprécié.
Mise à JOUR: Pour répondre à vos commentaires... Si vous allez à la JSFiddle lien et vous faites glisser un élément sur un autre élément... Il faut immédiatement bosse sortir de la manière dans toutes les directions. Pour voir une comparaison de la mienne rapport à Facebook, de la caisse leurs https://www.facebook.com//favoris, puis cliquez sur le bouton "Modifier".
Si oui ou non la "Tolérance" de la méthode est ce qui est erroné, leurs intérêts liste est ce que je cherche à dupliquer. Je ne sais même pas si la zone de Tolérance est quel est le problème, je veux réaliser ce qu'ils font.
J'espère que cela aide!