Jump to content
  • 0

отслеживание событий


Дядя Саша
 Share

Question

Есть ли возможность не цеплять к нужному элементу обработчик события, а отслеживать события постоянно и определять какой объект его получает и передавать ссылку на этот объект?

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

У меня например вот это событие отслеживается постоянно, и запускает функцию при свершении.Так что думаю что и в вашем случае возможны подобные варианты.

_________________________________________________________________________________________

<script language ="JavaScript" type="text/javascript">

window.onresize = function()

{ }

Link to comment
Share on other sites

  • 0
Есть ли возможность не цеплять к нужному элементу обработчик события, а отслеживать события постоянно и определять какой объект его получает и передавать ссылку на этот объект?

1. document плюс addEventListener и attachEvent

2. EventObject (для IE window.event)

3. target и srcElement

Link to comment
Share on other sites

  • 0

Гы, у меня тоже есть чтото подобное, но и у меня и у вас функция запускается в случае изменения размера окна, потому как указан обработчик события. А меня в данном случае интересует, возможно ли отслеживать абсолютно все события, которые происходят в документе, и получать ссылку на объект который получает событие. Например вы щелкнули мышью на слое (допустим это кнопка и таких кнопок много), надо отследить это событие и передать функции ссылку на объект. Меня интересует, создается ли вообще событие при щелчке на слое если к нему не привязан обработчик события, и если да, то как его перехватить. По моему это было бы замечательно.

Link to comment
Share on other sites

  • 0

Тоесть, если с объектом документа связать обработчик события, допустим onclick, можно определить на каком именно элементе произведен щелчок? Спасибо. Сейчас буду эксперементировать...

Link to comment
Share on other sites

  • 0

Ну а что же остается, если мне надо перехватывать много событий, не писать же для каждого элемента onmouseover=, onmouseout=, onclick= и тд и тп. Хочется както униварсальней решить задачу, например у меня уже есть функция, которая получает ссылку на обьект в случае щелчка на нем, получаю его клас и в соответствии с ним делаю нужные действия. Определял события с помощью addEventListener и attachEvent в цыкле, и даже при этом получается много текста.

Щитаете мой вопрос глупым?

Link to comment
Share on other sites

  • 0

Я вот тут недавно примерчег для другого форума делал... вот нашел...

<html>
<head>
<title>Global Click</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
#test {
border-collapse: collapse;
}

#test td {
width: 100;
height: 100;
border: 1px solid black;
color: red;
text-align: center;
vertical-align: middle;
font-size: 20px;
}
</style>
</head>
<body>

<table id="test">
<tr><td>0</td><td>0</td><td>0</td></tr>
<tr><td>0</td><td>0</td><td>0</td></tr>
<tr><td>0</td><td>0</td><td>0</td></tr>
</table>


<script language="javascript" type="text/javascript">

function clickFunction(e)
{
e = window.event ? window.event : e;
var evtObj = (e.target) ? e.target : e.srcElement;

if (evtObj.nodeName == "TD"){
if (evtObj.innerHTML == "1") {
evtObj.innerHTML = "0";
evtObj.style.backgroundColor = "white";
evtObj.style.color = "red";
} else {
evtObj.innerHTML = "1";
evtObj.style.backgroundColor = "red";
evtObj.style.color = "white";
}
}
}

var testTable = document.getElementById('test');
if (testTable.addEventListener) {
testTable.addEventListener ('click', clickFunction, true); // Opera, FF, NN
} else {
testTable.attachEvent('onclick', clickFunction); // fucking IE
}
</script>



</body>
</html>

Если нужно глобальнее, то используй document вместо testTable

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy