Javascript.RU

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

как узнать,что на объект нажали кнопкой мышки или id объекта,на который нажали?
как узнать id или класс объекта,на который нажали мышкой?
Ответить с цитированием
  #2 (permalink)  
Старый 31.01.2012, 00:18
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

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);
//здесь можете работать с элементом
}
Ответить с цитированием
  #3 (permalink)  
Старый 31.01.2012, 00:19
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

а если есть возможность, то проще повесить обработчик onclick на нужный вам элемент
Ответить с цитированием
  #4 (permalink)  
Старый 31.01.2012, 01:26
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

Рукалтицо.жпг

<html>
<body id="id">   
body
<script>
window.onclick=function(e){
  var elem = e ? e.target : window.event.srcElement;
  alert(elem.id)
}
</script>
</body>
</html>
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 31.01.2012, 19:31
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

подведём итоги
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>

Последний раз редактировалось Раед, 31.01.2012 в 20:12.
Ответить с цитированием
  #6 (permalink)  
Старый 31.01.2012, 21:54
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Раед, а собственно, почему бы не передать ссылку на объект, по которому кликнули?
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #7 (permalink)  
Старый 01.02.2012, 18:36
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от trikadin
Раед, а собственно, почему бы не передать ссылку на объект, по которому кликнули?
откуда её взять, когда обработчик на весь body
Ответить с цитированием
  #8 (permalink)  
Старый 01.02.2012, 19:51
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Раед
откуда её взять, когда обработчик на весь body
Мда)

Сообщение от Aetae
<html>
<body id="id">   
body
<script>
window.onclick=function(e){
  *!*var elem = e ? e.target : window.event.srcElement*/!*;
  alert(elem.id)
}
</script>
</body>
</html>
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #9 (permalink)  
Старый 01.02.2012, 20:11
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

trikadin,
ну так в последнем варианте я это и использую
Сообщение от Раед
подведём итоги
1 document.body.onclick = function(e) {
2 var elem = e ? e.target : window.event.srcElement;
3 while(!(elem.id || (elem == document.body))) elem = elem.parentNode;
4 if (!elem.id) return; else id = elem.id;
5 /* если вдруг у элемента по которому кликнули нет id,
6 скрипт будет подниматься вверх по цепочке DOM узлов до близжайшего элемента с id или до тега body
7 если элемент с id не будет найден, фи-я вырубится*/
8 //здесь работаете с id элемента
9 }

на мой взгляд это самый безопасный вариант
если с HTML'ом, то вот:
01 <html>
02 <body id="bodytag">
03 это текст прям в body'е
04 <div id="d1">текст дива 1</div>
05 <div id="d2">это текст дива 2 <span id="sp1">а в диве спан</span></div>
06 <div>а этот без id</div>
07 <script type="text/javascript">
08 document.body.onclick = function(e) {
09 var elem = e ? e.target : window.event.srcElement;
10 while(!(elem.id || (elem == document.body))) elem = elem.parentNode;
11 if (!elem.id) return; else id = elem.id;
12 /* если вдруг у элемента по которому кликнули нет id,
13 скрипт будет подниматься вверх по цепочке DOM узлов до близжайшего элемента с id или до тега body
14 если элемент с id не будет найден, фи-я вырубится*/
15 //здесь работаете с id элемента
16 alert(id);//например
17 }
18 </script>
19 </body>
20 </html>
Ответить с цитированием
  #10 (permalink)  
Старый 01.02.2012, 20:16
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Раед, а вы зачем по цепочке вверх поднимаетесь? Человеку нужен сам объект)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как узнать,что на объект нажали кнопкой мышки? Anastasiya Общие вопросы Javascript 2 30.01.2012 23:23