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!
In your .live() handler you could store a reference to the element that was clicked on using .data(), like this:
$('a').live('click',function(){
$('#dialog').data('opener', this).dialog('open');
});
Then to get it later you can grab it from $('#dialog').data('opener'), or $.data(this, 'opener') in the case of the open callback (because this refers to the dialog element). For example your open function may look like this:
open: function(event, ui) {
$(this).html("Hi, I was opened by: " + $.data(this, 'opener').id);
}
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With