Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   drag & drop, mouseup (https://javascript.ru/forum/events/29438-drag-drop-mouseup.html)

cyber 30.06.2012 23:17

ешкин кот, думал про querySelectorAll но не знал как искать по атрибуту .спасибо :thanks:

долго думал насчет старых ие и решил что буду писать для ие 8+

melky 30.06.2012 23:31

Цитата:

Сообщение от cyber
долго думал насчет старых ие и решил что буду писать для ие 8+

:lol: уморил. devote написал отличный инструмент.

cyber 30.06.2012 23:38

Цитата:

Сообщение от devote (Сообщение 185481)
document.querySelectorAll('[draggable]');
в ИЕ7 работать не будет

Цитата:

Сообщение от melky (Сообщение 185487)
:lol: уморил. devote написал отличный инструмент.

да я не сейчас , об этом думал, а вообще=)
или все таки сделать в общем скрипт работает в старых ие даже в 6...
все таки можно написать кросбраузерно=)
function (selector){
	
	 var query , n, arr_Qery = [];
	   
	    query = document.querySelectorAll("["+selector+"]");
	   
	     if(query){
			
			  return query;
		}
		
	     query = document.body.getElementsByTagName('*');
	       
	   for(var i = query.length;i--;){
	      
	    n = query[i];
		
		if(n.getAttribute(selector) !== null){
			 
			  arr_Qery.push(n);
		 }
		}
	return arr_Qery;
	}

cyber 30.06.2012 23:43

и последний вопрос который остался
почему не работает
addEventListener("dragstart", drag.drag_s, false);

и можно переходить к хтмл 5 части=)

melky 01.07.2012 00:11

Цитата:

Сообщение от cyber
да я не сейчас , об этом думал, а вообще=)

хех, я имел в виду QSA

Цитата:

Сообщение от cyber (Сообщение 185494)
и последний вопрос который остался
почему не работает
addEventListener("dragstart", *!*drag.drag_s*/!*, false);

и можно переходить к хтмл 5 части=)

дайте-ка угадаю : с this проблема ? если не знаешь, почему, стоит изучить тему про установку обработчиков событий заново

cyber 01.07.2012 00:20

знаю конечно , немного затупил с методом drag.drag_s
нужно было так
drag_s: function (e){
			  
			   if(e.preventDefault){
				   
				   e.preventDefault();
				  
				   } else {
					   
					   event.returnValue = false
					   
					   }
			}

а у меня было так
drag_s: function (){

return false;
}

cyber 01.07.2012 00:24

а да забыл=)
был вопрос еще по оптимизации=)
но как только найду почему перестало работать в старых браузерах залью наглядный пример=)

cyber 01.07.2012 01:10

вот страница http://cyberua.16mb.com/drag&drop/
в чем проблема
Event.addListener(document,"mousemove",action.move_wrap,false);

	   
	 move_wrap: function (e){
		 
	  setTimeout(function(){
				
				action.move(e);
				},20);
		 }

когда добавляю задержку в 20мс, если резко дернуть переместить элемент то он не исчезает , событие mouseup срабатывает

Deff 01.07.2012 01:30

Чот ток посмотрел тему сток кода... ужс

В принципе -css при наведении на элемент сss делаем позицию absolute;

по onmousedown="TestMoiseOffset(this)" тестируем позицию курсора и смещаем за ним
По onmouseout="JamToWat()" - прыгаем туды иль сюды

Почему то тащица какая то полупрозрачка вместо товара - потом ток прыгает товар...

(Но я возможно прост не в теме - ... :)

cyber 01.07.2012 01:40

Цитата:

Сообщение от Deff (Сообщение 185523)
Чот ток посмотрел тему сток кода... ужс

В принципе -css при наведении на элемент сss делаем позицию absolute;

по onmousedown="TestMoiseOffset(this)" тестируем позицию курсора и смещаем за ним
По onmouseout="JamToWat()" - прыгаем туды иль сюды

Почему то тащица какая то полупрозрачка вместо товара - потом ток прыгает товар...

(Но я возможно прост не в теме - ... :)

полупрозначное и должно тащится - это копия элемента что бы допустим не перетаскивать целое дерево (при создание "полупрозрачки " беребется высота и ширина ) элемента=)
если этот квадратик отпустить над drop блоком то элемент туда перенется=)


Часовой пояс GMT +3, время: 04:45.