onclick function runs automatically

When you say

document.getElementById('button1').onclick = doSomething('with_this_parameter');

This means call doSomething(‘with_this_parameter’) and then assign the returned value to document.getElementById('button1').onclick. Hence that is why it gets called when code reaches that line. Whether the value is assignable to that property or not is another question, but that is why it gets called.

Use it like this

document.getElementById('button1').onclick = function(){
    doSomething('with_this_parameter');
}

Reference: This solution was given by Mark Linus.

Leave a Comment