简体   繁体   中英

Onclick gets fired without clicking

en.onclick = setCookie('english');

Why does this get fired without even clicking on it?

I have 3 flags that should set a cookie to their language when clicked wit the last one always gets fired right away...

Your code above evaluates setCookie('english') and puts its returned value (if any) into en.onclick . In order to assign it as an event handler, wrap it into a function:

en.onclick = function(){
   setCookie('english');
};

cause you must use something like that

en.onclick=function(){
  setCookie('english');
}

Because you're invoking the method setCookie(...) . Try this:

en.onclick = setCookie;

With the brackets you're invoking the method; without you're handing it as an object.

Or try this:

en.onclick = function() { setCookie('english') };

Here we create a new function which calls setCookie with the appropriate argument.

Well that's because you're running the method and assigning the result to en.onclick.

What you probably want to do us

en.onclick = function(){setCookie('english');};

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM