Тема: drag and drop
Показать сообщение отдельно
  #1 (permalink)  
Старый 20.08.2012, 14:15
Интересующийся
Отправить личное сообщение для Elve Посмотреть профиль Найти все сообщения от Elve
 
Регистрация: 11.06.2012
Сообщений: 25

drag and drop
Вот почитав уроки по драгу решил опробовать их сам и тут же столкнулся с проблемой реализации...
Позаимствовав http://javascript.ru/files/dnd/fixEvent.js и http://javascript.ru/files/dnd/drag.js . Как вы увидите в коде, они подключаются. Задача такова, вот тут http://javascript.ru/ui/draganddrop есть пример, где перетаскиваем знаки карт ("Перенеси меня"). Я же хочу его чуть модифицировать, чтобы при клике по странице добавлялась картинка (любой масти конкретно заданной) в месте клика и ее можно было бы уже перетаскивать. При клике по пустому месту добавлялась еще одна.
Реализация с добавлением в конкретное место работает нормально
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" lang="ru" class="js"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Drag and drop</title>
<style type="text/css">
html {
	height:100%;
	width:100%;
}
</style>
<script src="http://javascript.ru/files/dnd/fixEvent.js"></script>
<script src="http://javascript.ru/files/dnd/drag.js"></script>
</head>
<body id="all_page" style="height:100%; width:100%;">
<script>
document.getElementById('all_page').onclick = function () {
	var newImg = document.createElement('img');
	newImg.src  = "http://javascript.ru/files/dnd/img/bubi.gif";
	newImg.style.cssText = "position: absolute; \
        left:100px;\ 
        top:100px;\ ";
	document.getElementById('dragObjects1').appendChild(newImg)
	var dragObjects = document.getElementById('dragObjects1').getElementsByTagName('img')
    for(var i=0; i<dragObjects.length; i++) {
      dragMaster1.makeDraggable(dragObjects[i])
}
}
</script>
<div id="dragObjects1" style="height:100%; width:100%;">
</div>

</body></html>

Единственный момент тут для меня непонятный, почему добавляется еще 1 элемент при перетаскивании предыдущего. То есть я нажимаю на имг а все равно вызывается функция нажатия по ИД.
Но вот если надо добавить изображение в точке клика работать перестает
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" lang="ru" class="js"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Drag and drop</title>
<style type="text/css">
html {
	height:100%;
	width:100%;
}
</style>
<script src="http://javascript.ru/files/dnd/fixEvent.js"></script>
<script src="http://javascript.ru/files/dnd/drag.js"></script>
</head>
<body id="all_page" style="height:100%; width:100%;">
<script>
document.getElementById('all_page').onclick = function () {
	var newImg = document.createElement('img');
	newImg.src  = "http://javascript.ru/files/dnd/img/bubi.gif";
	newImg.style.cssText = "position: absolute; \ ";
       newImg.style.top = document.pageY-2+'px';
        newImg.style.left= document.pageX+'px';
	document.getElementById('dragObjects1').appendChild(newImg)
	var dragObjects = document.getElementById('dragObjects1').getElementsByTagName('img')
    for(var i=0; i<dragObjects.length; i++) {
      dragMaster1.makeDraggable(dragObjects[i])
}
}
</script>
<div id="dragObjects1" style="height:100%; width:100%;">
</div>

</body></html>

Вот с кодом newImg.style.top = document.pageY-2+'px';newImg.style.left= document.pageX+'px'; уже не работает. Может вы подскажите в чем суть проблемы?
П.С. Если не сложно дайте ссылочку на тему где описано как делать код рабочим на форуме(запускать код прямо в теме)

Последний раз редактировалось Elve, 20.08.2012 в 18:23.
Ответить с цитированием