I have a dialog that is opened by many buttons. How can I know which button has opened that dialog?
$('#dialog').dialog({
autoOpen: false,
buttons: {
"Ok": function() {
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
},
open: function(event, ui) {
//HERE ::: how to get an HTML OBJECT TO THE ELEMENT THAT OPENED THE DIALOG
}
});
This is called by:
$('a').live('click',function(){
$('#dialog').dialog('open');
});
I want to know which <a>
tag has called that dialog. Is this possible?
Thanks!
You can assign
$(this)
to a variable likeme
and use it later:making the assumption you have a button like such:
and some css like:
add that class when clicked
Edit: fix syntax error and add another example to make it clear
Edit2: The original was wrong (sort of) in that the opener event is NOT associated with the click event. Modified to use the click event properly.
In your
.live()
handler you could store a reference to the element that was clicked on using.data()
, like this:Then to get it later you can grab it from
$('#dialog').data('opener')
, or$.data(this, 'opener')
in the case of theopen
callback (becausethis
refers to the dialog element). For example youropen
function may look like this:This would show the
id
property of the anchor you clicked on to open the dialog...you can do whatever you want really,$.data(this, 'opener')
refers to the<a />
DOM element.You can give try a demo of this here
You can give it an id: