trr*_*rrm 4 javascript jquery dialog jquery-ui
我有一个由许多按钮打开的对话框.我怎么知道哪个按钮打开了那个对话框?
$('#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
}
});
Run Code Online (Sandbox Code Playgroud)
这称为:
$('a').live('click',function(){
$('#dialog').dialog('open');
});
Run Code Online (Sandbox Code Playgroud)
我想知道哪个<a>标签调用了该对话框.这可能吗?
谢谢!
Nic*_*ver 17
在您的.live()处理程序中,您可以存储对使用的元素的引用.data(),如下所示:
$('a').live('click',function(){
$('#dialog').data('opener', this).dialog('open');
});
Run Code Online (Sandbox Code Playgroud)
然后为了得到它你可以从中获取它$('#dialog').data('opener'),或者$.data(this, 'opener')在open回调的情况下(因为this引用了dialog元素).例如,您的open函数可能如下所示:
open: function(event, ui) {
$(this).html("Hi, I was opened by: " + $.data(this, 'opener').id);
}
Run Code Online (Sandbox Code Playgroud)
这将显示id您单击的锚点的属性以打开对话框...您可以执行任何您想要的操作,$.data(this, 'opener')指向<a />DOM元素.