Comment déplacer div avec la souris en utilisant jquery?
J'ai besoin d'être capable de déplacer un div avec ma souris et enregistrer la nouvelle pos de la div dans la base de données pour rappeler l'écran. Comment puis-je le faire?
source d'informationauteur Bigballs | 2009-02-18
Vous devez vous connecter pour publier un commentaire.
Je vous recommande fortement de vous regarder dans jQuery UI et de selection de l'interaction. Fondamentalement, vous aurez envie d'ajouter le code à votre déplaçable div (en supposant qu'il a id="draggable"):
Et, ensuite, mettre votre nécessaire de comportement dans l'événement d'arrêt. Plus spécifiquement, vous devrez faire cela:
Comme pour la base de données de stockage, vous pouvez utiliser un appel AJAX dans la fonction ci-dessus, ou vous pouvez le stocker en page, de telle sorte que certaines formulaire à envoyer ou à d'autres mesures de résultats dans l'information de la position d'être transmises au serveur et stockées en ligne avec d'autres données. Je serais prudent avec un appel AJAX, car vous pourriez bombe votre base de données avec les données de position avec tous les faisant glisser sur tous les navigateurs. Dépend de votre app...
Voici une petite fonction jQuery que je viens de vous laisser glisser divs en utilisant uniquement jQuery et non pas à l'aide de jQuery UI.
La fonction jQuery empêche même la div de sortir des limites. Fondamentalement, vous joindre à un div que vous destinez à être la faire glisser de l'activateur de dire que la barre de titre par exemple). Invoquant c'est aussi simple que cela:
Donc #barre de titre serait l'id de votre barre de titre de la div et #whatToDrag serait l'id de ce que vous vouliez faire glisser. Je m'excuse pour le désordre code, j'ai juste piraté et pensé qu'il pourrait vous donner une alternative à jQuery UI, tout en le rendant facile à mettre en œuvre.
Si il y a beaucoup d'objets, puis de mousemove peut coûter cher. Un pas vers la résolution c'est de lier le gestionnaire sur les événements mousedown et délier sur mouseup. Cet exemple n'a pas été conçu et testé avec plusieurs objets; en particulier, le courant de déliaison délie tout ce qui était lié avant (il peut être résolu en nommant l'expression lambda, et se référant à ce nom en séparer).
Ou dans Parenscript: