Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.09.2010, 21:45
Интересующийся
Отправить личное сообщение для сiparis Посмотреть профиль Найти все сообщения от сiparis
 
Регистрация: 13.09.2010
Сообщений: 11

Как мне переложить это на jQuery?
Здраствуйте,
Прошу помочь мне разобраться с событиями.
Есть к примеру код, в сумме, который выполняет перетаскивание елемента.
Суть в том, что я немогу понять как мне переложить это на jQuery.

var x = 0, drag = 0, elem = document.getElementById('move');

elem.onmousedown = function(event){
   event = event || window.event;
   x = event.clientX+document.body.scrollLeft-parseInt(elem.style.left);
   drag=true;
}
elem.ondragstart = function() {
   return false;
}

document.onmouseup = function() {
   drag = false;
}
document.onmousemove = function(event) {
   event = event || window.event;
   if(drag){
      elem.style.left=event.clientX+document.body.scrollLeft-x;
   }
}



Попробвал преобразовать, но почему-то безуспешно

var x = 0, drag = 0, elem = $('#move');
elem.mousedown(function(event){
   x = event.clientX+document.body.scrollLeft-parseInt(elem.style.left);
   drag=true;
});

elem.dragstart(function(event){
   return false;
});

document.mouseup(function(event){
   drag = false;
});

document.mousemove(function(event){
   if(drag){
      elem.style.left = event.clientX+document.body.scrollLeft-x;
   }
});


Объясните на каком этапе я допустил ошибку?


Неужели, чтобы сделать простой drag & drop из 10 строчек, нужно подключать UI.
Ответить с цитированием
  #2 (permalink)  
Старый 13.09.2010, 21:48
Новичок
Отправить личное сообщение для inGray Посмотреть профиль Найти все сообщения от inGray
 
Регистрация: 03.08.2010
Сообщений: 230

Можно нескромный вопрос? А зачем?
__________________
Не хочешь, чтобы тебя послали? Не спрашивай куда идти.
Ответить с цитированием
  #3 (permalink)  
Старый 13.09.2010, 21:52
Интересующийся
Отправить личное сообщение для сiparis Посмотреть профиль Найти все сообщения от сiparis
 
Регистрация: 13.09.2010
Сообщений: 11

Ну какбы хочу понять/разобраться почему чтобы сделать элементарный drag & drop на jQuery нужно подключить тонну кода UI, а не сделать это просто как на чистом JavaScript.

Реально не понимаю почему не работает вышеприведенный код, буду раз если разьясните
Ответить с цитированием
  #4 (permalink)  
Старый 13.09.2010, 22:36
Новичок
Отправить личное сообщение для inGray Посмотреть профиль Найти все сообщения от inGray
 
Регистрация: 03.08.2010
Сообщений: 230

Не до конца jQuery используете.. Не понимаю зачем вообще на jQuery переписывать, если он и так минимален? Меньше он не станет...

ЗЫ У Объекта Document нет методов mouseup, mousemove... Ну и фаербаг вам в помощь.
__________________
Не хочешь, чтобы тебя послали? Не спрашивай куда идти.
Ответить с цитированием
  #5 (permalink)  
Старый 13.09.2010, 22:47
Интересующийся
Отправить личное сообщение для сiparis Посмотреть профиль Найти все сообщения от сiparis
 
Регистрация: 13.09.2010
Сообщений: 11

Рабочий пример:

<script type="text/javascript">
window.onload = function() {
   var x = 0, drag = 0, elem = document.getElementById('move');

   elem.onmousedown = function(event){
      event = event || window.event;
      x = event.clientX+document.body.scrollLeft-parseInt(elem.style.left);
      drag = true;
   };

   elem.ondragstart = function() {
      return false;
   };

   document.onmouseup = function() {
      drag = false;
   };

   document.onmousemove = function(event) {
   event = event || window.event;
      if(drag){
      elem.style.left = event.clientX+document.body.scrollLeft-x + "px";
      }
   };
};
</script>
<img src="http://www.linkexchanger.su/forum/download/file.php?avatar=2_1263474815.jpg" style="position:absolute; top:100; left:100;" id="move" />


Мне ради интереса, хочется знать почему не получается перевести вышепредставленный код на jQuery.

PS: Document c обработчиками событий дружит прекрасно и firebag, это не считает за ошибку

Последний раз редактировалось сiparis, 13.09.2010 в 22:49.
Ответить с цитированием
  #6 (permalink)  
Старый 13.09.2010, 22:49
Новичок
Отправить личное сообщение для inGray Посмотреть профиль Найти все сообщения от inGray
 
Регистрация: 03.08.2010
Сообщений: 230

Метод onmousemove есть, а mousemove?
__________________
Не хочешь, чтобы тебя послали? Не спрашивай куда идти.
Ответить с цитированием
  #7 (permalink)  
Старый 13.09.2010, 23:01
Интересующийся
Отправить личное сообщение для сiparis Посмотреть профиль Найти все сообщения от сiparis
 
Регистрация: 13.09.2010
Сообщений: 11

Сообщение от inGray Посмотреть сообщение
Метод onmousemove есть, а mousemove?
в каком смысле? jQuery mousemove()
Ответить с цитированием
  #8 (permalink)  
Старый 13.09.2010, 23:19
Интересующийся
Отправить личное сообщение для сiparis Посмотреть профиль Найти все сообщения от сiparis
 
Регистрация: 13.09.2010
Сообщений: 11

Вроде бы разобрался
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как это реализовать ~online~ Оффтопик 9 13.07.2010 16:15
как реализовать на jQuery скроллинг фоток sensor jQuery 8 31.05.2010 18:51
.load() - как в загруженном содержимом использовать jquery? rbooz jQuery 14 25.05.2010 12:03
Как правильно подгрузить jQuery Siton jQuery 4 15.06.2009 09:54
Как понимать это выражение? Хранитель Света Общие вопросы Javascript 2 22.07.2008 17:03