Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   e.target. Работа с событием (https://javascript.ru/forum/events/70660-e-target-rabota-s-sobytiem.html)

Sinevik 23.09.2017 01:26

e.target. Работа с событием
 
Очень простой код

function ShowMe() {
        var c = e.target;
        var f = c.textContent;
        console.log(f);
      }
      
      var a = [1, 2, 3, 4, 5, 6 ,7, 8];
      for(var i = 0; i <= a.length; i++){
        var b = document.createElement('p');
        b.textContent = a[i];
        b.onclick = ShowMe;
        window.document.body.appendChild(b);

      }


Когда жму на циферку ругается на
var c = e.target;

Не подскажите что не так?

рони 23.09.2017 01:54

Sinevik,
что такое e?

j0hnik 23.09.2017 02:08

function ShowMe(e)
//так наверно.

Dilettante_Pro 23.09.2017 09:17

j0hnik,
Ежели бы это был обработчик события... А так неизвестно, что это за функция

j0hnik 23.09.2017 11:50

Dilettante_Pro,
b.onclick = ShowMe; // вот его обработчик

так не работает
<button>Клик</button>
	<script>
function show(){
alert(e.target);
}
document.querySelector("button").onclick = show;
	</script>


а так, заработает

<button>Клик</button>
<script>
function show(e){
alert(e.target);
}

document.querySelector("button").onclick = show;
</script>

Rasy 23.09.2017 11:53

Sinevik,
или замени e на event.
function ShowMe() {
       *!*
        var c = e.target;
        */!*
        var f = c.textContent;
        console.log(f);
      }
      
      var a = [1, 2, 3, 4, 5, 6 ,7, 8];
      for(var i = 0; i <= a.length; i++){
        var b = document.createElement('p');
        b.textContent = a[i];
        b.onclick = ShowMe;
        window.document.body.appendChild(b);

      }

j0hnik 23.09.2017 11:58

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
		<script>
function ShowMe(e) {
        var c = e.target;
        var f = c.textContent;
        console.log(f);
      }
      
      var a = [1, 2, 3, 4, 5, 6 ,7, 8];
      for(var i = 0; i <= a.length; i++){
        var b = document.createElement('p');
        b.textContent = a[i];
        b.onclick = ShowMe;
        window.document.body.appendChild(b);

      }
	</script>
</body>
</html>

j0hnik 23.09.2017 12:00

Цитата:

Сообщение от Rasy (Сообщение 465210)
Sinevik,
или замени e на event.

Тоже вариант :)


Часовой пояс GMT +3, время: 16:57.