2010-01-03 2 views
1

Я пытаюсь переопределить метод JQuery Dialog.Переопределение метода jQuery Dialog

Код:

jQuery.Dialog.close = function() { 
    alert('my close'); 
} 

Но ее не работает. Пожалуйста помоги.

+0

Что вы пытаетесь сделать? – SLaks

+0

В основном у меня есть несколько диалоговых окон на странице. Когда нажата кнопка закрытия, я хочу скрыть это диалоговое окно (не закрытое). Поэтому я хочу сделать dialog.hide() при закрытии. Поэтому я хочу переопределить метод close – Soft

+0

Когда вы говорите, что хотите скрыть его, не закрывайте его, значит, вы хотите сохранить значения? До тех пор, пока вы не уничтожите диалог, вы сможете его сохранить. в функции закрытия внутри диалогового окна, просто скажите (#dialogname) .hide(); и после этого возвращает false. – thegreekgod

ответ

3

Вы неправильно настроили это. Проверьте this out, чтобы узнать, как это сделать правильно.

Хорошо, так что ссылка не приведет вас туда, где я думал. Вот соответствующий бит от jqueryui.com.

closeType:dialogclose 
This event is triggered when the dialog is closed. 

Code examples 

Supply a callback function to handle the close event as an init option. 
$('.selector').dialog({ 
    close: function(event, ui) { ... } 
}); 
Bind to the close event by type: dialogclose. 
$('.selector').bind('dialogclose', function(event, ui) { 
    ... 
}); 
+0

Я пробовал, но не работал, как и ожидал. Моя цель - когда я нажимаю кнопку закрытия, которую я хочу скрыть(), чтобы не закрывать. – Soft

+0

Я не верю, что вы можете сделать это, не изменяя фактический код диалогового окна jquery. – Jason

5

Существует событие называется beforeClose, который позволит вам делать то, что вы хотите, я думаю. Когда он срабатывает, вы можете скрыть диалог, а затем вернуть значение false, что предотвратит фактическое закрытие диалогового окна.

$(".selector").dialog({ 
    beforeClose: function(event, ui) { 
     $(this).hide(); 
     return false; 
    } 
}); 

Ссылка: http://jqueryui.com/demos/dialog/ на вкладке События ниже примере

+4

before beforeClose: «Это событие запускается, когда диалог пытается закрыть. Если обработчик события beforeClose (функция обратного вызова) возвращает false, закрытие будет предотвращено». –

Смежные вопросы