我有一个由许多按钮打开的对话框。我怎么知道是哪个按钮打开了那个对话框?
$('#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
}
});
调用者:
$('a').live('click',function(){
$('#dialog').dialog('open');
});
我想知道哪个<a>
标记调用了该对话框。这可能吗?
谢谢!
最佳答案
在你的 .live()
处理程序,您可以存储对使用 .data()
单击的元素的引用,像这样:
$('a').live('click',function(){
$('#dialog').data('opener', this).dialog('open');
});
然后要稍后获取它,您可以从 $('#dialog').data('opener')
中获取它, 或 $.data(this, 'opener')
在 open
的情况下回调(因为 this
指的是对话框元素)。例如你的 open
函数可能如下所示:
open: function(event, ui) {
$(this).html("Hi, I was opened by: " + $.data(this, 'opener').id);
}
这将显示 id
您单击以打开对话框的 anchor 的属性...您真的可以做任何您想做的事, $.data(this, 'opener')
指的是<a />
DOM 元素。
关于javascript - jquery如何获取打开对话框的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3292498/