2010-01-03 81 views
1

我想覆盖Jquery对话框方法的关闭方法。覆盖jQuery对话框方法

代码:

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

但它不工作。请帮忙。

+0

你到底做下面的活动标签下? – SLaks 2010-01-03 03:37:42

+0

基本上,我在页面中有多个对话框。当关闭按钮被点击时,我想隐藏那个对话框(不关闭)。所以我想在close时做dialog.hide()。所以我想覆盖关闭方法 – Soft 2010-01-03 04:00:02

+0

当你说你想隐藏它不关闭它,这是否意味着你想保留的价值?除非你不破坏对话,否则你将能够保留它。在对话框内的关闭函数中,只需说(#dialogname).hide();并在此之后返回false。 – thegreekgod 2016-10-14 07:38:53

回答

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 2010-01-03 04:12:01

+0

我不相信你可以做到这一点,而无需修改实际的jQuery对话框代码。 – Jason 2010-01-03 08:38:37

5

有一个事件叫beforeClose,它可以让你做你想做的事,我想。当它触发时,可以隐藏对话框,然后返回false,这会阻止对话框实际关闭。

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

参考:http://jqueryui.com/demos/dialog/的例子

+4

beforeClose:“当对话框尝试关闭时触发此事件。如果beforeClose事件处理函数(回调函数)返回false,则关闭将被阻止。” – 2012-01-16 21:48:00