Сделать новый Div Перетаскиваемым в Jquery

Я пытаюсь сделать jquery добавить новый div, а затем сделать его перетаскиваемым, но я пытался и смотрел на google, и я не могу найти ничего здесь мой код ниже

 $(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 ответов


Если вы используете jQuery UI, затем создайте свой элемент и сделайте его перетаскиваемым:

$("<div />").draggable();

проблема здесь в том, что вы создаете DIV после того, как вы попытались сделать его перетаскиваемым.

события jQuery работают только с элементами, которые существуют во время запуска Javascript - есть способы обойти это с помощью live и delegate функции-но не похоже, что ваш плагин позволяет это.

поэтому, если этот код должен оставаться неизменным, переместите бит, который создает DIV над перетаскиваемой функцией, - и он будет работать.


Я не пробовал, но это должно работать:

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

вы хотите создать div, пусть браузер добавит его в дерево DOM, затем вызовите


Так как некоторые люди упомянули draggable() функция здесь, которая является функцией jQuery UI, вот краткое руководство:

добавьте следующую строку (ссылку на jQuery UI) к вашему .html страница, внутри головы или в нижней части тела:

<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>

Теперь, чтобы сделать #draggable draggable вы пишете в своем скрипте (ваш скрипт или ссылка на него должны прийти после ссылки на jQuery UI):

$('#draggable').draggable()