Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.11.2014, 13:26
Интересующийся
Отправить личное сообщение для slavaspirit Посмотреть профиль Найти все сообщения от slavaspirit
 
Регистрация: 22.06.2013
Сообщений: 14

Не работает драг-энд-дроп
Добрый день!
Пытаюсь вот понять, как пользоваться драг-энд-дропом (без jquery). Сделал два элемента: один - блок и второй - контейнер. Задачка, вроде, не тривиальна - блок надо положить в контейнер.
Все, вроде, делаю правильно, но data transfer не работает.
Подскажите, где накосячил, плиз...

http://jsfiddle.net/qo9qqnqx/
Ответить с цитированием
  #2 (permalink)  
Старый 23.11.2014, 14:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Цитата:
var data = e.dataTransfer.getData('text/html');
И? Дальше че?

И причем тут text/html? Сделай так:
Когда хватаем элемент - записываем данные с кастомным типом:
setData('application/x-element-id', this.id);
Это мы записали id элемента.

На принимающей стороне получаем эти данные и делаем appendChild элемента с таким id.

На самом деле, даже нет необходимости что-то передавать через dataTransfer. Просто при старте запоминаем в переменную перетаскиваемый элемента, а при финише - делаем appendChild.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 23.11.2014, 17:50
Интересующийся
Отправить личное сообщение для slavaspirit Посмотреть профиль Найти все сообщения от slavaspirit
 
Регистрация: 22.06.2013
Сообщений: 14

Спасибо большое...)
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2014, 19:23
Интересующийся
Отправить личное сообщение для slavaspirit Посмотреть профиль Найти все сообщения от slavaspirit
 
Регистрация: 22.06.2013
Сообщений: 14

А каким образом поступить, если блоков для перетаскивания несколько и все с одинаковым ID?

Написал такую штуку:
var elements = document.getElementById("moveto");
	var allIds = '';
	for(var i=0; i<elements.length; i++) {
		allIds += elements[i].name;
	}
	document.write(allIds);


Но не пойму, как вставить...
Ответить с цитированием
  #5 (permalink)  
Старый 23.11.2014, 19:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

slavaspirit,
у кого много одинаковых id
запрещено использование document.write
Ответить с цитированием
  #6 (permalink)  
Старый 23.11.2014, 19:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068


пример по теме
http://www.w3schools.com/html/html5_draganddrop.asp
http://www.w3schools.com/html/tryit....l5_draganddrop

Последний раз редактировалось рони, 23.11.2014 в 19:42.
Ответить с цитированием
  #7 (permalink)  
Старый 23.11.2014, 19:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от slavaspirit
и все с одинаковым ID?
А детей своих тоже одинаковым именем назовешь?
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
innerHTML для TR в InternetExplorer не работает? Непонятливый Элементы интерфейса 3 15.10.2012 17:14
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41