Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.09.2010, 20:13
Новичок на форуме
Отправить личное сообщение для avchizh Посмотреть профиль Найти все сообщения от avchizh
 
Регистрация: 30.03.2010
Сообщений: 5

Поверх элемента лежит прозрачный div нужно что бы события прокидывались через него
<body>
		<div style="position:absolute; left:100px; top:100px; width:50px; height:50px; background:red;" onclick='alert(1)'></div>
		<div style="position:absolute; width:500px; height:500px;"></div>
    </body>


естественно пример синтетический,но такая потребность действительно существует.

z-Index менять нельзя

Последний раз редактировалось avchizh, 04.09.2010 в 20:17.
Ответить с цитированием
  #2 (permalink)  
Старый 04.09.2010, 20:26
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Можно поверху положить еще один полностью прозрачный див?
Ответить с цитированием
  #3 (permalink)  
Старый 04.09.2010, 20:54
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

<style type="text/css">
#div1, #div2 {
	border: 1px solid #DDDDDD;
	margin: 50px auto;
}

#div1 {
	width: 200px;
	height: 100px;
}

#div2 {
	background: #FFFFFF;
	width: 100px;
	height: 50px;
}
</style>
	
<script type="text/javascript">
window.onload = function(){
	var div1 = document.getElementById("div1");
	var div2 = document.getElementById("div2");
	div2.onclick = function(){
		div1.style.background = (div1.style.background == '#000000') ? '' : '#000000';
	};
};
</script>

<div id="div1">
	<div id="div2"></div>
</div>
Ответить с цитированием
  #4 (permalink)  
Старый 04.09.2010, 21:05
Новичок на форуме
Отправить личное сообщение для avchizh Посмотреть профиль Найти все сообщения от avchizh
 
Регистрация: 30.03.2010
Сообщений: 5

subzey: можно попробовать как это может помочь? в ручную считать клики?

monolithed: извини не понял идею, у меня 2 дива лежат в одном паренте а у тебя один в другом это серьезная разница.
Ответить с цитированием
  #5 (permalink)  
Старый 04.09.2010, 21:22
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

avchizh

Какая разница как они лежат? Вызывай событие использую самый верхний элемент, для этого либо если есть необходимость, то положи еще один полностью прозрачный див как сказал subzey
Ответить с цитированием
  #6 (permalink)  
Старый 04.09.2010, 21:26
Новичок на форуме
Отправить личное сообщение для avchizh Посмотреть профиль Найти все сообщения от avchizh
 
Регистрация: 30.03.2010
Сообщений: 5

Твой вариант не подходит т.к. не обязательно клик пришел на ниже лижайщий элемент, нужно вычислять координаты клика и если они в приделах нижнего объекта то прокидывать событие, но это же гемор и не красиво так?
Ответить с цитированием
  #7 (permalink)  
Старый 04.09.2010, 23:49
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Можно сделать подобную проверку:
element.onclick = function(event){
	var event = event || window.event;
	var target = event.target || event.srcElement;
	if(target.tagName == 'DIV' && target.className = 'someclass'){
		this.style.background = '#000000';
	}
};


Также если нужно то еще и проверять с какого и на какой элемент ушел курсор event.relatedTarget || event.fromElement / event.toElement; и тд..
Ответить с цитированием
  #8 (permalink)  
Старый 05.09.2010, 09:21
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от monolithed
var target = event.target || event.srcElement;
Эм, так клик как раз придет на див-заглушку.
Ответить с цитированием
  #9 (permalink)  
Старый 05.09.2010, 09:27
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Просто интересно: откуда взялся такой странный кейс?
Ответить с цитированием
  #10 (permalink)  
Старый 05.09.2010, 09:59
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Предпологаю еще, если известны окружащие элементы то можно использовать: nextSubling / previousSubling
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск