Полезная информация

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№109-02-2007 19:01:47

sm1le
Участник
 
Группа: Members
Зарегистрирован: 09-02-2007
Сообщений: 5
UA: IE 6.0

проблема с JS обработчиками событий

Вобщем следующая проблема
мне нужно чтобы в функции определялось event.clientX , как я понял в лисе нету window.event
поэтому необходимо передавать event в фукцию как параметр. Но я этого сделать не могу =-(. как мне получить координаты внутри функции?

Вот кусок кода:

<div onMouseDown="StartMove(event)"></div>


<script>
function StartMove(evt)
{
document.mousemove=Drag(evt);
}

function Drag(evt)
{
Alert(evt.clientX) Вот именно тут мне нужно получить координаты мыши, но передать их сюда параметром я не могу, т.к. строка document.mousemove=Drag(event) ; не срабатывает!!. Как мне получить сюда координаты мышки ?!
}
</script>

Попробовал альтернативный путь

function StartMove(element,evt)
{
element.addEventListener("mousemove",Drag(evt),false);  оно отрабатывает, но в консоли полявляется ошибка Uncaught Exeption: null и курсорчик замирает в виде песочных часов.
}

Отсутствует

 

№209-02-2007 19:09:11

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 2.0
Веб-сайт

Re: проблема с JS обработчиками событий

sm1le
Приведите полный код, вместе с HTML и CSS. А лучше ссылку на страничку.


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№309-02-2007 19:21:22

sm1le
Участник
 
Группа: Members
Зарегистрирован: 09-02-2007
Сообщений: 5
UA: IE 6.0

Re: проблема с JS обработчиками событий

<html>
<body>
<script type="text/javascript">
function Move(element,evt)
{
element.addEventListener("mousemove",Drag(evt),false);
}

function Drag(evt)
{
document.write(evt.clientX+' '+evt.clientY);
}
</script>


<div onMouseDown="Move(this,event)" style='position: absolute; width: 200px; height: 150px; border:3px solid black;'>
</div>
<div id="coord"></div>
</body>
</html>

Отсутствует

 

№410-02-2007 10:56:11

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 2.0
Веб-сайт

Re: проблема с JS обработчиками событий

Что за бред?
Во-первых, в addEventListener вы пытаетесь передать вместо функции результат её работы.
Во-вторых, куда по вашему должен писать document.write?

Может вам этого надо?

Выделить код

Код:

<html>
<body>
<script type="text/javascript">
function Drag(evt) {
	document.getElementById('coord').innerHTML = evt.clientX+' '+evt.clientY;
}
</script>
<div onMouseDown="Drag(event);this.addEventListener('mousemove',Drag,false)" onMouseUp="this.removeEventListener('mousemove',Drag,false)" style='position: absolute; width: 200px; height: 150px; border:3px solid black;'>
</div>
<div id="coord"></div>
</body>
</html>

Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№511-02-2007 05:09:24

Unghost
Призрак-админ
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 08-10-2004
Сообщений: 11771
UA: Minefield 3.0

Re: проблема с JS обработчиками событий

==> Разработка


Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.

Отсутствует

 

№611-02-2007 15:28:22

sm1le
Участник
 
Группа: Members
Зарегистрирован: 09-02-2007
Сообщений: 5
UA: IE 6.0

Re: проблема с JS обработчиками событий

Lynn ваш пример оч помог ThZ

Отредактировано sm1le (11-02-2007 20:00:17)

Отсутствует

 

№711-02-2007 20:35:09

sm1le
Участник
 
Группа: Members
Зарегистрирован: 09-02-2007
Сообщений: 5
UA: IE 6.0

Re: проблема с JS обработчиками событий

Ув. Lynn не подскажете а что IE 6 не поддерживает addEventListener ????

ему надо будет отдельно прописывать element.onmousemove=Drag;

?

Отсутствует

 

№811-02-2007 21:13:57

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 2.0
Веб-сайт

Re: проблема с JS обработчиками событий

У IE как всегда свой путь...
http://xpoint.ru/know-how/JavaScript/PoleznyieFunktsii?35#ObrabotkaSobyitiy


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№911-02-2007 23:59:16

sm1le
Участник
 
Группа: Members
Зарегистрирован: 09-02-2007
Сообщений: 5
UA: IE 6.0

Re: проблема с JS обработчиками событий

еще раз огромный Сеньк! Вы помогли мне сьэкономить кучу времени!

Отсутствует

 

№1023-03-2007 19:04:49

Megabotan
Участник
 
Группа: Members
Зарегистрирован: 23-03-2007
Сообщений: 1
UA: IE 6.0

Re: проблема с JS обработчиками событий

Лучше всего делать так (идеально работает во всех браузерах):

Выделить код

Код:

<...>
element.onmousemove = something; // или в теге элемента прописать onmousemove="return something(event)"

function something(event){
  if (typeof(event)=="undefined") event = window.event;
  var el = (!event.target) ? event.srcElement : event.target; // Пример того, как получать объект породивший событие

  alert(event.clientX); // а лучше: alert(event.pageX);

}

Всё очень просто

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]