Поверх элемента лежит прозрачный 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 менять нельзя :) |
Можно поверху положить еще один полностью прозрачный див?
|
<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>
|
subzey: можно попробовать :) как это может помочь? в ручную считать клики? :)
monolithed: извини не понял идею, у меня 2 дива лежат в одном паренте а у тебя один в другом это серьезная разница. |
avchizh
Какая разница как они лежат? Вызывай событие использую самый верхний элемент, для этого либо если есть необходимость, то положи еще один полностью прозрачный див как сказал subzey |
Твой вариант не подходит т.к. не обязательно клик пришел на ниже лижайщий элемент, нужно вычислять координаты клика и если они в приделах нижнего объекта то прокидывать событие, но это же гемор и не красиво так?
|
Можно сделать подобную проверку:
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; и тд.. |
Цитата:
|
Просто интересно: откуда взялся такой странный кейс?
|
Предпологаю еще, если известны окружащие элементы то можно использовать: nextSubling / previousSubling
|
| Часовой пояс GMT +3, время: 12:38. |