как узнать,что на объект нажали кнопкой мышки или id объекта,на который нажали?
как узнать id или класс объекта,на который нажали мышкой?
|
function getClickedElement(e){
if (navigator.userAgent.match('MSIE') || navigator.userAgent.match('Gecko')) {
var elem = document.elementFromPoint(e.clientX,e.clientY);
} else {
var elem = document.elementFromPoint(e.pageX,e.pageY);
}
return elem.id;
}
document.body.onclick = function(e) {
e = e || window.event;
id = getClickedElement(e);
//здесь можете работать с элементом
}
|
а если есть возможность, то проще повесить обработчик onclick на нужный вам элемент
|
Рукалтицо.жпг
<html>
<body id="id">
body
<script>
window.onclick=function(e){
var elem = e ? e.target : window.event.srcElement;
alert(elem.id)
}
</script>
</body>
</html>
|
подведём итоги
document.body.onclick = function(e) {
var elem = e ? e.target : window.event.srcElement;
while(!(elem.id || (elem == document.body))) elem = elem.parentNode;
if (!elem.id) return; else id = elem.id;
/* если вдруг у элемента по которому кликнули нет id,
скрипт будет подниматься вверх по цепочке DOM узлов до близжайшего элемента с id или до тега body
если элемент с id не будет найден, фи-я вырубится*/
//здесь работаете с id элемента
}
на мой взгляд это самый безопасный вариант если с HTML'ом, то вот:
<html>
<body id="bodytag">
это текст прям в body'е
<div id="d1">текст дива 1</div>
<div id="d2">это текст дива 2 <span id="sp1">а в диве спан</span></div>
<div>а этот без id</div>
<script type="text/javascript">
document.body.onclick = function(e) {
var elem = e ? e.target : window.event.srcElement;
while(!(elem.id || (elem == document.body))) elem = elem.parentNode;
if (!elem.id) return; else id = elem.id;
/* если вдруг у элемента по которому кликнули нет id,
скрипт будет подниматься вверх по цепочке DOM узлов до близжайшего элемента с id или до тега body
если элемент с id не будет найден, фи-я вырубится*/
//здесь работаете с id элемента
alert(id);//например
}
</script>
</body>
</html>
|
Раед, а собственно, почему бы не передать ссылку на объект, по которому кликнули?
|
Цитата:
|
Цитата:
Цитата:
|
trikadin,
ну так в последнем варианте я это и использую Цитата:
|
Раед, а вы зачем по цепочке вверх поднимаетесь? Человеку нужен сам объект)
|
| Часовой пояс GMT +3, время: 02:35. |