16

Possible Duplicate:
How to pass arguments to addEventListener listener function?

How can I pass some argument (in this case an integer) to a function through addEventListener on a click event?

I have two buttons; if I press the right one I want to do some stuff, if I press the left one then I'd like it to do something else.

Here's the code:

document.getElementById('date_right').addEventListener( 'click', switch_date(1), false );
document.getElementById('date_left').addEventListener( 'click', switch_date(-1), false );
  function switch_date( k )
  {
    if(k==1)
    {
      //do stuff
    }
  else
  {
    //another stuff
  }
}
Community
  • 1
  • 1
lwiii
  • 4,739
  • 6
  • 18
  • 18

1 Answers1

22

You don't. Use anonymous functions:

document.getElementById('date_right').addEventListener('click', function () {
    switch_date(1);
}, false);
document.getElementById('date_left').addEventListener('click', function () {
    switch_date(-1);
}, false);

Or use named functions which do not take arguments:

function onRightDateClick() {
    switch_date(1);
}

function onLeftDateClick() {
    switch_date(-1);
}

document.getElementById('date_right').addEventListener('click', onRightDateClick, false);
document.getElementById('date_left').addEventListener('click', onLeftDateClick, false);
Matt Ball
  • 354,903
  • 100
  • 647
  • 710