2009-08-29 3 views
2

Интересно, если есть правильный способ удалить кнопку закрытия по умолчанию в строке заголовка и изменить ее на другую, к которой я хочу назначить другую функцию, кроме Close. Мне удается изменить классы, но, несмотря на это, функция закрытия кажется переопределенной для любого в заголовке.Кнопка изменения в диалоговом окне 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> 

В результате предыдущего яваскрипта кода, классы будут перезаписаны, но функция остается. Это из-за внутреннего кода jQuery, я полагаю, не так ли? Любые советы, как легко его преодолеть?

ответ

1

Я предполагаю, что вы имеете в виду, что функция закрытия остается.

Что вы можете сделать, это сохранить старый клик, а затем отвязать его, добавить свой собственный, который внутренне вызывает старый щелчок, чтобы фактически закрыть диалог.

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

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

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

Спасибо! Это именно то, что я искал. – flyeris

+0

Спасибо за это! – ecounysis

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) 
{ 
///////// 
} 
Смежные вопросы