在jQuery对话框中更改按钮

问题描述:

我想知道,如果有一种正确的方法来删除标题栏中的默认关闭按钮并将其更改为其他,我想要分配关闭其他功能。我设法改变类,但尽管如此,关闭功能似乎覆盖任何标题栏。在jQuery对话框中更改按钮

我改变类当前代码:

var closeButton = $("#dialog").parent().find('.ui-dialog-titlebar a'); 
closeButton.attr("class","ui-dialog-titlebar-lock"); 
closeButton.find("span").attr("class","ui-icon ui-icon-lock"); 

标题栏的HTML代码:

<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix" unselectable="on" style="-moz-user-select: none;"> 
    <span id="ui-dialog-title-profile-dialog" class="ui-dialog-title" unselectable="on" style="-moz-user-select: none;">Edit My Profile</span> 
    <a class="ui-dialog-titlebar-close ui-corner-all" href="#" role="button" unselectable="on" style="-moz-user-select: none;"> 
     <span class="ui-icon ui-icon-closethick" unselectable="on" style="-moz-user-select: none;">close</span> 
    </a> 
</div> 

由于以前的javascript代码的结果,类被重写,但功能依然存在。这是因为jQuery内部代码,我猜想,不是吗?任何建议如何克服它很容易?

我假设你的意思是关闭功能依然存在。

你可以做的是坚持旧的点击事件,然后解除绑定,添加你自己的内部调用旧点击来实际关闭对话框。

//persist old click 
var oldClickFn = closeButton.click; 

closeButton.unbind('click').click(function(){ 
    //functionality you want 

    //call the persisted click 
    oldClickFn && oldClickFn() 
}); 
+0

谢谢!这正是我所寻找的。 – flyeris 2009-08-29 07:55:32

+0

谢谢你! – ecounysis 2010-04-16 23:30:05

下面应该工作:

var dialog = // here open the dialog and assign it to the dialog variable 
dialog.parent(".ui-dialog").find(".ui-dialog-titlebar-close").unbind('click');   
dialog.parent(".ui-dialog").find(".ui-dialog-titlebar-close").show(); 
dialog.parent(".ui-dialog").find(".ui-dialog-titlebar-close").bind('click', function() { showNoteDialogClose(null, null) }); 


function showNoteDialogClose(data, args) 
{ 
///////// 
}