Как создать функцию в JavaScript, которая принимает HTMLElement, EventName, Callback для выполнения после запуска событий в качестве аргументов? - PullRequest
0 голосов
/ 14 марта 2020

Мне было интересно, можем ли мы создать пользовательскую функцию JavaScript для присоединения событий к html элементам.

Поэтому я пришел к решению, как показано ниже:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form>
        <input name="input" type="text">
        <input >
    </form> 
    <script>
        function callback(e){
         //code to be executed when event fired
         console.log(e.target.name)
        }

        function attachEventToElement(element,event,callback){
         document.querySelector(`${element}`).addEventListener(`${event}`,callback)
        }

        attachEventToElement('form','input',callback)
    </script>
</body>
</html>

Приведенный выше код работает нормально, если в функцию обратного вызова не переданы аргументы, но не работает, если мы передаем ей какие-либо аргументы.

Может кто-нибудь сообщить мне, как мы можем выполнить функцию обратного вызова с параметрами?

Например:

function callback(e,name){
  //code to be executed when event fired
  console.log(e.target.name);
  console.log(name);
}

attachEventToElement('form','input',callback(event,'Daniel'))

вывод из вышеуказанного кода после начала ввода в поле ввода должен быть:

input (имя целевого элемента)

Daniel (name передается в качестве параметра функции обратного вызова)

Возможно ли это сделать?

...