addEventListener | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
0

addEventListener

I relate submit button so that it display a text "welcome" when clicked. As usual <button id="btn" onclick="display message()">display</button> display message(){ var a = document.getElementById("btn"); a.alert("Welcome"); But this time I use: a.addEventListener("click", (display message()); The problem arise here. When I use a.addEventListener("click", (display message()); Why It doesn't wait until the button btn pushed or pressed then invoke displayMessage()? Instead, it automatically invoke function displayMessage() without waiting for the keypressed or button btn pushed? Thank you for your explanation class....

13th Apr 2024, 5:55 AM
Oliver Pasaribu
7 Answers
+ 2
Why don't you link your code? You cannot have white space inside a function name. So the code in your description is syntactically incorrect. alert is a method of the window, and it does not need the button to work. alert("your message")
13th Apr 2024, 6:04 AM
Tibor Santa
Tibor Santa - avatar
+ 2
Brother try to attached your code or effort while u ask this type of question not in the description section instead separately as an attachment, that our mentor Tibor Santa SIR mentioned. At least we can understand u do an effort for your answer. Here is your answer. When u use a.addEventListener("click", displayMessage());, u are actually calling the displayMessage function immediately instead of waiting for the click event to trigger it. To fix this issue & make sure the displayMessage function runs only when the button is clicked, u should pass a reference to the function without the parentheses when adding the event listener. By passing displayMessage without the parentheses in the addEventListener method, u are telling the browser to only execute that function when the button is clicked. Here it is⤵️ https://sololearn.com/compiler-playground/WH2Kl2jViGUl/?ref=app
13th Apr 2024, 6:09 AM
`нттp⁴⁰⁶
`нттp⁴⁰⁶ - avatar
+ 1
Ok
13th Apr 2024, 4:03 PM
Oliver Pasaribu
+ 1
Your code: a.addEventListener('click', display()); Fixed: a.addEventListener('click', display); Notice the absence of the parentheses. Doing this will not execute the function, but bind the function itself to the click event.
13th Apr 2024, 6:08 PM
Tibor Santa
Tibor Santa - avatar
0
Tibor Santa , нттp⁴⁰⁶ I enclose the code.
13th Apr 2024, 4:16 PM
Oliver Pasaribu
0
Oh, I understand. Thank you very much
13th Apr 2024, 10:46 PM
Oliver Pasaribu