Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.04.2009, 22:50
Аватар для MaxPayne
Аспирант
Отправить личное сообщение для MaxPayne Посмотреть профиль Найти все сообщения от MaxPayne
 
Регистрация: 11.04.2009
Сообщений: 39

Проблема с ClientX и ClientY
Пишу на JavaScript drag and drop. В Опере и Файрфоксе работает отменно, а вот в ИЕ - вообще даже захвата не делается. Предполагаемая мной причина сей ошибки - неточность в определении необходимых координат.
Вот основная часть кода. Вроде и добавил в код расположенность к ИЕ
- все равно помочь не может.

if (!event) event = window.event; // IE
this.dragStartLeft = event.clientX;
this.dragStartTop = event.clientY;

this.top = $("mini").offsetTop;
this.left = $("mini").offsetLeft;


Какие будут мысли на этот счет?
Ответить с цитированием
  #2 (permalink)  
Старый 17.04.2009, 22:53
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Наверно этого не хватает:

if (e.pageX == null && e.clientX != null) {
	var docElem = $d.documentElement || {}, body = $d.body || {};
	e.pageX = e.clientX + (window.pageXOffset || docElem.scrollLeft || body.scrollLeft || 0) - (docElem.clientLeft || 0);
	e.pageY = e.clientY + (window.pageYOffset || docElem.scrollTop || body.scrollTop || 0) - (docElem.clientTop || 0);
}
Ответить с цитированием
  #3 (permalink)  
Старый 17.04.2009, 23:46
Аватар для MaxPayne
Аспирант
Отправить личное сообщение для MaxPayne Посмотреть профиль Найти все сообщения от MaxPayne
 
Регистрация: 11.04.2009
Сообщений: 39

То есть будет правильно так:

if (e.pageX == null && e.clientX != null) {
var docElem = $d.documentElement || {}, body = $d.body || {};
e.pageX = e.clientX + (window.pageXOffset || docElem.scrollLeft || body.scrollLeft || 0) - (docElem.clientLeft || 0);
e.pageY = e.clientY + (window.pageYOffset || docElem.scrollTop || body.scrollTop || 0) - (docElem.clientTop || 0);
}
this.dragStartLeft = event.pageX;
this.dragStartTop = event.pageY;

this.top = $("mini").offsetTop;
this.left = $("mini").offsetLeft;
Ответить с цитированием
  #4 (permalink)  
Старый 18.04.2009, 06:52
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

У вас event, а у меня e.
Выкладывайте весь код, что бы гадать не приходилось, что там у вас не так.
Ответить с цитированием
  #5 (permalink)  
Старый 25.04.2009, 18:53
Аватар для MaxPayne
Аспирант
Отправить личное сообщение для MaxPayne Посмотреть профиль Найти все сообщения от MaxPayne
 
Регистрация: 11.04.2009
Сообщений: 39

А в чем отличие event от e?
Ответить с цитированием
  #6 (permalink)  
Старый 26.04.2009, 03:12
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

ни в чем
а если серьезно, то
Цитата:
Выкладывайте весь код, что бы гадать не приходилось, что там у вас не так.
Ответить с цитированием
  #7 (permalink)  
Старый 26.04.2009, 20:58
Аватар для MaxPayne
Аспирант
Отправить личное сообщение для MaxPayne Посмотреть профиль Найти все сообщения от MaxPayne
 
Регистрация: 11.04.2009
Сообщений: 39

Вопрос немного не в тот раздел, но по теме..

Необходимо найти координаты курсора мыши относительно отца цели события. Использую:
window.event.x
window.event.y
В Опере - все суперски работает. В ФФ - не хочет. Координаты определяет как undefined.
Как исправить? Есть ли кроссбраузерные решения на эту тему с использованием фреймворков?
Ответить с цитированием
  #8 (permalink)  
Старый 26.04.2009, 23:30
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от MaxPayne
Есть ли кроссбраузерные решения на эту тему с использованием фреймворков?
Есть в любом фреймворке. Читайте документацию.
Ответить с цитированием
  #9 (permalink)  
Старый 26.04.2009, 23:55
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,221

Как раз пишу статью про Drag&Drop, в которой вы найдете ответы на все вопросы.

Пока - сегодня выложил обновленный раздел про события, читайте про pageX/pageY.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема со скриптом Lightbox F1eldy Общие вопросы Javascript 22 18.08.2010 16:04
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47
проблема с обработкой DIV nerik AJAX и COMET 2 22.08.2008 17:40
Проблема с маркером kostian02 Общие вопросы Javascript 0 23.06.2008 16:10
проблема с передачей русского текста в Prototype subaru Prototype & script.aculo.us 2 26.07.2007 16:56