在jQuery对话框中更改按钮

时间:2009-08-29 07:21:07

标签: jquery function user-interface dialog

我想知道,如果有一种正确的方法来删除标题栏中的默认关闭按钮并将其与其他更改,我想要分配除关闭之外的其他功能。我设法改变了类,但尽管如此,close函数似乎覆盖了标题栏中的任何一个。

我目前更改课程的代码:

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内码,我想,不是吗?有任何建议如何轻松克服它?

2 个答案:

答案 0 :(得分:1)

我认为你的意思是关闭功能仍然存在。

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

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

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

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

答案 1 :(得分:0)

以下内容应该有效:

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)
{
 /////////
}