как заставить работать под FireFox ?

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Ответить
Виталик
Сообщения: 33
Зарегистрирован: 03 май 2006, 11:52

Использую при клике на картинке свойство window.event.offsetX, но под FireFox-ом не хочет работать. Есть какие-то альтернативные способы для FireFox ?
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

Код: Выделить всё

function mouseHandler(mouseEvent) {

	if (!mouseEvent) mouseEvent = window.event;

	if (mouseEvent.type == 'mousedown') {
		offsetX = mouseEvent.clientX;
		offsetY = mouseEvent.clientY;
		....
	}
}

function addMouseHanlder(id) {
	var element = document.getElementById(id);
	element.onmousedown = mouseHandler;
	element.onmousemove = mouseHandler;
	element.onmouseup = mouseHandler;
	element.onmouseout = mouseHandler;
}
Виталик
Сообщения: 33
Зарегистрирован: 03 май 2006, 11:52

как мне это присобачить чтобы при клике выскакивало сообщение с Х-вой и У-ковой координатами?
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

Код: Выделить всё

<html>
<head>
<title>mouse handler</title>
<script type="text/javascript">
function mouseHandler(mouseEvent) {

	if (!mouseEvent) mouseEvent = window.event;

	var offsetX = mouseEvent.clientX;
	var offsetY = mouseEvent.clientY;

	switch(mouseEvent.type) {
		case 'mousedown':
			/*
			 * handle mouse down
			 * alert("mouse down at [" + offsetX +", " + offsetY + "]");
			 */ 
		break;
		case 'click':
			/*
			 * handle mouse click
			 */
			alert("mouse click at [" + offsetX +", " + offsetY + "]"); 
		break;
		default:
			/*
			 * handle other type of events
			 * alert(mouseEvent.type);
			 */
	}
}

function addMouseHandler(id) {
   var element = document.getElementById(id);

   element.onmousedown = mouseHandler;
   element.onmousemove = mouseHandler;
   element.onmouseup = mouseHandler;
   element.onmouseout = mouseHandler;
   element.onmouseup = mouseHandler;
   element.onclick = mouseHandler;
}
function init() {
	addMouseHandler("test");
}
</script>
</head>
<body onload="init();">
<div id="test" style="width: 100px; height: 100px; border: 1px solid #000000; 

background-color: #FF0000;"></div>
</body>
</html>
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

хотя click всё равно по mouseup срабатывает ..
так что я бы запоминал при mousedown глобально offset, а по mouseup проверял его,
если совпадает - click, иначе - drag
Ответить