Перезапись onclick

Модератор: [mweb team]

Перезапись onclick

Сообщение Padonak Пт янв 20, 2023 18:10

Попался вопрос о том, как можно изменить свойство onclick, прописав туда другую функцию, но сохранить при этом возможность выполнения первоначально заданной там функции. Тема древняя, но, возможно, кто-то не в курсе, т.к. вопрос этот был задан буквально на днях -03-

Код: Выделить всё
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title></title>
   <style>
   a:hover{
   color: crimson;
   cursor: pointer;
   }
   </style>
   </head>
  <body>   
     <a onclick="one()">Смотри в консоли функцию, исполняемую на onclick</a>
   <br /><br />
   <a>Сменить ф-цию для onclick первого &lt;a&gt;</a>
   <script>
   let onclickSaver;
   const a1 = document.querySelector('a'),
         a2 = document.querySelector('a:last-of-type');
   
   a2.addEventListener('click', function(){
   onclickSaver = a1.onclick;
   a1.onclick = onclickSaver == two ? one : two;
   });
   
   function one(){
   console.log( 'Function one() has just been fired' );
   }
   
   function two(){
   console.log( 'Function two() has just been fired' );
   }
   </script>
   </body>
</html>
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Вернуться в Javascript

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron