Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

189
Views
Arrastrar y soltar de jQuery: ingeniería inversa uiTokenizer de Facebook en 'Artes e intereses'

Estoy aplicando ingeniería inversa al uiTokenizer de Facebook usando $.special.event.drag y $.special.event.drop y jQuery porque jQuery UI ordenable/arrastrable es pesado y lento.

Creo que mi pregunta está relacionada con las matemáticas de tolerancia para decidir cuándo inyectar el elemento de marcador de posición.

He limpiado mucho de este código desde que lo escribí por primera vez, pero la premisa sigue ahí y debería funcionar para esta pregunta.

Aquí está el código y la lógica: http://jsfiddle.net/JoshuaIRL/kf9Qt/ para probar.

El área que necesito que alguien mire sería el área de "tolerancia" de la función $.drop si la encuentra.

 $.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 parece hacer una "inserción posterior" cuando el cursor real toca otro elemento.

Estoy pensando que esto podría ser el corazón de esto también:

 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)); }

Además, necesito descubrir cómo asegurarme de que no estoy sobrevinculando mis elementos con este estúpido método abierto $.drop() ... :-\

Cualquier ayuda que pueda ofrecer será muy apreciada.

ACTUALIZACIÓN: para responder a sus comentarios... Si va al enlace JSFiddle y arrastra un elemento sobre otro elemento... Debería eliminarlo inmediatamente en todas las direcciones. Para ver una comparación entre la mía y la de Facebook, consulte la de ellos en https://www.facebook.com/ /favorites y luego haga clic en el botón "Editar".

Ya sea que el método de "Tolerancia" sea o no lo que está mal, su lista de intereses es lo que estoy buscando duplicar. Ni siquiera sé si el área de Tolerancia es lo que está mal, quiero lograr lo que están haciendo.

¡Espero que esto ayude!

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Parece que solo está determinando si los arrastrables a la derecha se cruzan con los objetivos a la izquierda, y si la parte superior de los arrastrables se cruza con la parte inferior de los objetivos (con cierta tolerancia).

Hay 2 maneras en que haría esto:

  1. Encuentre todos los elementos de intersección y encuentre el área más grande, en este caso, el cuadrado izquierdo de la imagen a continuación.
  2. Si el elemento que se puede arrastrar tiene las mismas dimensiones que el elemento que se puede soltar, la superposición de 1/4 sería suficiente; en este caso, el cuadrado correcto.

ingrese la descripción de la imagen aquí

El segundo es, con mucho, el más fácil de implementar, pero no es tan general como el primero. Entonces, al echar un vistazo rápido a su código, recorrería todos los elementos desplegables "posibles" para determinar el área de superposición y apuntar al más grande.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!