我该怎么做:
$("#some_div").dialog("doSomething");
该方法应该做的是在标题栏中添加一个额外的图标
编辑1 :我试过这个solution:方法被调用但是我无法访问对话框对象(也许我做错了)
答案 0 :(得分:2)
首先,如果您要在标题栏中添加一个图标,我建议您在该对话框中应用一个类并使用CSS设置样式。例如:
$( "#some_div" ).dialog({ dialogClass: "someClass" });
如果您仍想添加自定义方法,documentation说的是:
提供一个回调函数来将create事件作为init选项处理。
$( ".selector" ).dialog({
create: function(event, ui) { ... }
});
按类型绑定到create事件:dialogcreate。
$( ".selector" ).bind( "dialogcreate", function(event, ui) {
...
});
答案 1 :(得分:2)
好的,这就是我所做的:
//in a separate js file
$.ui.dialog.prototype.showExtraButton = function()
{
this.uiDialogTitlebar.append("<a role='button' class='ui-dialog-titlebar-icon ui-dialog-titlebar-icon-extra'><span class='ui-icon'></span></a>");
}
//call it this way
$("#some_div").dialog("showExtraButton");
//css
.ui-dialog-titlebar-icon {
position: absolute;
right: 25px;
}
.ui-dialog-titlebar-icon-extra span
{
display: block;
background-image: url(../path_to_img/button_extra.png)!important;
}
兰登的solution以及Kevin B的this one给了我如何解决问题的答案
更新2014-01-03
关于$.widget()的TIL,所以这是同一件事的另一个实现
$.widget("ui.dialog", $.ui.dialog,
{
showExtraButton: function()
{
this.uiDialogTitlebar.append("<a role='button' class='ui-dialog-titlebar-icon ui-dialog-titlebar-icon-extra'><span class='ui-icon'></span></a>");
}
});