Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   onmousedown сквозь див (https://javascript.ru/forum/misc/27456-onmousedown-skvoz-div.html)

cmygeHm 13.04.2012 14:35

onmousedown сквозь див
 
Вот пример:
<script>
	window.onload = function(){
		var el1 = document.getElementById('el1');
		var el2 = document.getElementById('el2');

		el1.onmousedown = function() {
			console.log('el1');
		}
		el2.onmousedown = function() {
			console.log('el2');
		}
	}
</script>
<body>
	<div id="el1" style="position: absolute; top: 100px; left: 100px; width: 150px; height: 350px; border: 1px solid red;">
		
		<div id="el2" style="position: absolute; top: 50px; left: 50px; width: 50px; height: 50px; border: 1px solid green;"></div>
		
	</div>
</body>

Как сделать так, чтобы при mousedown на внутренний зелененький див событие onmousedown большого красненького дива не сработало!?
Вариант ловить события window.onmousedown и делать программный вызов onmousedown того дива, над которым произошел щелчок уже рассмотрен. Но надеюсь есть что-то проще...
Всем спасибо за внимание! :thanks:

cmygeHm 13.04.2012 15:34

Ура! Решил!
<script>
	window.onload = function(){
		var el1 = document.getElementById('el1');
		var el2 = document.getElementById('el2');

		el1.onmousedown = function(ev) {
			if(ev.target.id != 'el2')
				console.log('el1');
		}
		el2.onmousedown = function() {
			
			console.log('el2');
		}
	}
</script>
<body>
	<div id="el1" style="position: absolute; top: 100px; left: 100px; width: 150px; height: 350px; border: 1px solid red;">
		
		<div id="el2" style="position: absolute; top: 50px; left: 50px; width: 50px; height: 50px; border: 1px solid green;"></div>
		
	</div>
</body>


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