Alfred
Alfred

Reputation: 21396

How can I retrieve the id of element that triggered my function?

I have a function like below;

function myfunction(param1,param2,param3){
  alert(param1);
  alert(param2);
  alert(param3);
  alert(buttonid);//i want to alert mybutton here
}

$('#mybutton').click(function() {
  myfunction("hi","hello","howdy");
});

The function is evoked using a button click event. I want to alert the button's id in the function called. How can I do this?

Upvotes: 0

Views: 104

Answers (2)

Bharti Sharma
Bharti Sharma

Reputation: 126

Try this

function myfunction(param1,param2,param3,buttonid){
  alert(param1);
  alert(param2);
  alert(param3);
  alert(buttonid);//i want to alert mybutton here
}
$(document).ready(function(){
    $('#mybutton').click(function() {
      myfunction("hi","hello","howdy",$(this).attr('id'));
    });
})

Upvotes: 0

Lloyd Banks
Lloyd Banks

Reputation: 36659

The this in your current function is referring to the window object. You want to use the event object (whose target property will refer to the element that triggered the action).

function myfunction(param1,param2,param3){
  alert(param1);
  alert(param2);
  alert(param3);
  alert(event.target.id);
}

Also, I would suggest using the jQuery on listener rather than the click listener. This will make the listener AJAX compatible.

$(document).on("click", "#mybutton", function(){
   myfunction("hi", "hello", "hey"); 
}); 

Upvotes: 1

Related Questions