Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Координаты мыши (https://javascript.ru/forum/jquery/25847-koordinaty-myshi.html)

KupueIIIKo 17.02.2012 13:18

Координаты мыши
 
$("div.content").offset() возвратит координаты первого div-элемента с классом content, относительно начала страницы.

$("div.content").position() возвратит координаты первого div-элемента с классом content, относительно ближайшего родителя с заданным позиционированием.

А как вычислить координаты мыши в Div! То есть началом отсчета считать угол div! И кликая мышкой чтоб он вывел кординату? x y

KupueIIIKo 17.02.2012 15:32

все сделал

$('#click').click(function(e){
				var offset = $(this).offset();
				var x = e.pageX - offset.left;
				var y = e.pageY - offset.top;
				alert(x +', '+ y);
			});

А теперь ее вопрос почему у меня он выводит x не целым числом?
например 2.5 или например 99.5

KupueIIIKo 17.02.2012 15:37

Да и заметил что срабатывает при кликах! если даже сверху элемент наложен!

KupueIIIKo 17.02.2012 16:17

проблему с числами решил через toFixed()

Но проблема с дивами осталась...

KupueIIIKo 17.02.2012 18:35

не кто не поможет? )

<div id='id1'>
       <div id='id2'>
       </div>
</div>

При клике по id2 почему то срабатывает будто я кликнул на первый!

KupueIIIKo 17.02.2012 18:35

z-index выставил! id1 находиться сзади!

sysya 17.02.2012 18:37

Цитата:

Сообщение от KupueIIIKo (Сообщение 158142)
z-index выставил! id1 находиться сзади!

так не выставишь, родитель всегда снизу будет, на сколько я знаю


заметил что функция клика не так написана, в ней ошибка, что за элемент #click ?...

zebra 17.02.2012 18:44

Отменяй всплытие событий

KupueIIIKo 17.02.2012 19:08

zebra,
это как? )

я иванушка дурачек)

zebra 17.02.2012 19:11

Приведите рабочий тестовый пример

KupueIIIKo 17.02.2012 19:48

а вот это тяжко! там много связного кода

примерная структура такая

<html>
	<head>
		<title></title>
		<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />
		<meta http-equiv=\"Content-Language\" content=\"ru\">
		<link rel=\"stylesheet\" type=\"text/css\" href=\"css/style.css\">
		<script type='text/javascript' src='js/jquery.min.js'></script>
		<script type='text/javascript' src='js/jquery-ui.min.js'></script>
		<script type='text/javascript'>
		$(document).ready(function() {
			$('#click').click(function(e){
				var offset = $(this).offset();
				var x = e.pageX.toFixed() - offset.left.toFixed();
				var y = e.pageY.toFixed() - offset.top.toFixed();
				alert(x +', '+ y);
			});
		});
		</script>
	</head>
<body>
<div id=\"click\">

<!--ШАПКА-->
<div id=\"header\">
	<link rel=\"stylesheet\" type=\"text/css\" href=\"css/header.css\">
		<table>
			<tr>
				<td>
					<img src=\"img/logo.png\">
				</td>
				<td>
					<div id=\"showTime\"></div>
				</td>
				<td>
					<div class=\"quit\"></div>
				</td>
			</tr>
		</table>	
</div>
<br />

<!--КОНТЕНТ-->
<link rel=\"stylesheet\" type=\"text/css\" href=\"css/content.css\">
<div id=\"content\">
	<div class=\"content\">

	</div>	
</div>
<br />

</div>
</body>
</html>

KupueIIIKo 17.02.2012 19:52

Цитата:

Сообщение от sysya (Сообщение 158143)
так не выставишь, родитель всегда снизу будет, на сколько я знаю


заметил что функция клика не так написана, в ней ошибка, что за элемент #click ?...

Все правильно) это указатель на id )

zebra 17.02.2012 20:08

Это не тестовый пример, чтобы его можно было запустить. И не понятно что вы хотите, 1 обработчик висит, понятное дело что он сработает

KupueIIIKo 17.02.2012 20:17

zebra,
блин даже незнаю как объяснить! Вообщем я тыкаю на контент! он мне выполняет клик! А я ведь тыкаю на div с другом названием!

zebra 17.02.2012 20:26

Вы повесили событие на весь див, и всё что внутри него будет вызывать событие. Читать

KupueIIIKo 17.02.2012 20:36

понял и как отключить это на jquery?

KupueIIIKo 17.02.2012 20:42

все откопал

$('название').click(function(event){
				event.stopPropagation();
				// do something
			});

Минус если блоков много например у меня 4! то надо писать на все 4 получаеться?

zebra 17.02.2012 20:47

Наверное да. Всё зависит от задачи

KupueIIIKo 17.02.2012 20:51

zebra, Спасибо огромное! Блин плюсануть не могу) т. к. уже плюсовал)


Часовой пояс GMT +3, время: 20:50.