J'essaie de faire de JQuery Ajouter à nouveau Div puis de la rendre dragagable mais j'essaie et je cherche Google et je ne trouve rien ici est mon code ci-dessous
$(document).ready(function() { $("#draggable").draggable({ containment: 'parent', handle: 'drag_border', drag: function(e, ui) { var top = ui.position.top; var left = ui.position.left; $("#top").html(top); $("#left").html(left); } }); }); function New_Text() { $("<div id=\"draggable\" style=\"width: 200px; height: 50px; border:dashed thin; background-color: #fff\">Drag me</div>").appendTo("div#drag_border"); }
4 Réponses :
Je ne l'ai pas essayé, mais cela devrait fonctionner:
function New_Text() { $("<div id=\"draggable\" style=\"width: 200px; height: 50px; border:dashed thin; background-color: #fff\">Drag me</div>").appendTo("div#drag_border"); setTimeout(function() { ... }); }, 10); }
Le problème ici est que vous créez la DIV après avoir essayé de le faire glisser. p>
Les événements de JQuery ne fonctionnent que sur les éléments qui existent à l'époque duquel le JavaScript est exécuté - il existe des moyens autour de celui-ci à l'aide du code> code> et Donc, si ce code doit rester identique, déplacez le bit qui crée la DIV au-dessus de la fonction draggable - et cela fonctionnera. p> délégué code> fonctions - mais cela ne fait pas 'T ressemble à votre plugin permet de cela. p>
Si vous utilisez jQuery UI , puis créez votre élément et faites-la glacer:
$("<div />").draggable();
Étant donné que certaines personnes ont mentionné la fonction Ajoutez la ligne suivante (référence à JQuery UI) à votre page .html, à l'intérieur de la tête ou au bas du corps: p> maintenant, pour rendre #Draked dragge vous écrivez dans votre script (votre script ou la référence Pour cela, il faut venir après la référence à JQuery UI): P> draggable () code> ici, qui est une fonction d'interface utilisateur JQuery, voici un court-circuité:
$('#draggable').draggable()
Ceci est juste un extrait, pourriez-vous publier davantage du code afin qu'il soit plus facile de déboguer?
Pouvez-vous faire la DIV lorsque la page est chargée et l'avoir caché jusqu'à ce qu'il soit nécessaire?
@ Alexy13 - Je crois que le problème est qu'il crée la div une plus tard, le gestionnaire d'événements n'est donc pas attaché à la Div, et je ne pense pas que la fonction live fonctionnera pour cela, mais c'est presque ce dont il a besoin.
Ce que je voulais dire, c'est de poster une partie du HTML afin que je puisse trouver le problème plus facile. Parfois, je ne suis pas très bon pour expliquer: p