Search code examples
javascriptjquerycallbackjquery-callback

Pass arguments to a callback function in jquery click event


Straight to the business:

I have a jquery event listener that looks like this:

$(".number").click(printNumber);

and a callback function:

function printNumber(number){
   console.log(number);
}

I was wondering if I could pass an argument to a callback so it will look something like this

$(".number").click(printNumber(number));

(I know that it immediately invokes that function, but still, is there a way to pass arguments to it)

Thank you in advance!


Solution

  • The clean way to handle this is to return a function:

    function printNumber(number) {
       return function(e) {
           console.log(number);
       };
    }
    

    And then use:

    $(".number").click(printNumber(number));