ruskar
@ruskar
Conflict Intelligence Team

Drag'n'drop для динамически созданных элементов (jQuery)?

В jQuery есть такой хороший плагин jQuery UI Draggable, который позволяет создавать эффекты drag'n'drop. Работает он достаточно просто: нужно для любого существующего элемента вызвать метод .draggable():

$('#test').draggable();<br>

Если же попытаться вызвать этот метод для динамически добавленного элемента, то ничего не произойдёт:

$('body').append('<div id="newblock">Новый элемент</div>');<br>
$('#newblock').draggable();<br>


«Новый элемент» не будет обладать возможностью drag'n'drop. Как сделать тут что-то типо аналога функции .live(), чтобы динамически созданные элементы тоже реагировали на эти методы?
  • Вопрос задан
  • 10256 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Serator
<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>jQuery UI Example Page</title>
		<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
		<script type="text/javascript" src="js/jquery-ui-1.8.4.custom.min.js"></script>
		<script type="text/javascript">
			$(function(){
				$('body').append('<div id="newblock">Новый элемент</div>');
				$('#newblock').draggable();
			});
		</script>
	</head>
	<body>
		<div>
			:)
		</div>
	</body>
</html>


Все прекрасно работает. Вы бы полнее пример привели.
Ответ написан
3ds
@3ds
Лень пробовать, попробуйте livequery (работает при клонировании — добавляет драггабл) Т.к. при клонировании тоже создается элемент динамически и работает, возможно сработает и в вашем случае.
 $(".drag")
   .livequery(function(){ 
        $(this)
         .draggable({
                helper: 'clone',
                opacity: 0.7,
               revert: 'invalid'
          });
    });

примеры: bit.ly/azEmUP
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы