Проблема с 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; Какие будут мысли на этот счет? |
Наверно этого не хватает:
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); } |
То есть будет правильно так:
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; |
У вас event, а у меня e.
Выкладывайте весь код, что бы гадать не приходилось, что там у вас не так. |
А в чем отличие event от e?
|
ни в чем
а если серьезно, то Цитата:
|
Вопрос немного не в тот раздел, но по теме..
Необходимо найти координаты курсора мыши относительно отца цели события. Использую: window.event.x window.event.y В Опере - все суперски работает. В ФФ - не хочет. Координаты определяет как undefined. Как исправить? Есть ли кроссбраузерные решения на эту тему с использованием фреймворков? |
Цитата:
|
Как раз пишу статью про Drag&Drop, в которой вы найдете ответы на все вопросы.
Пока - сегодня выложил обновленный раздел про события, читайте про pageX/pageY. |
Часовой пояс GMT +3, время: 19:21. |