JQuery对话框:检查beforeclose处理程序中的调用元素

时间:2012-10-11 08:55:15

标签: jquery jquery-ui jquery-dialog

我有一个JQuery Dialog,它具有刷新父窗口的beforeclose处理程序方法:

$( "#dialog" ).dialog({
    beforeclose: function(event, ui) { 
       refreshParent(); 
    } 
});

对话框一旦打开,就可以从多个位置关闭。每次关闭对话框时,都会调用refreshParent()方法。

现在我需要检查在某些条件下是否关闭对话框,不应该调用refreshParent()。

这样做的一种方法是设置如下的全局标志:

$( "#dialog" ).dialog({
    beforeclose: function(event, ui) { 
       if(doRefreshParent)
           refreshParent(); 
    } 
});

在调用dialog close之前将doRefreshParent设置为true或false。但这似乎不是一个好方法。

我们有什么办法可以在关闭调用对话框之前检查一个关闭处理程序(即被点击的元素的id,因为关闭了对话框)。这样我们就可以控制refreshParent()的调用。

1 个答案:

答案 0 :(得分:0)

为了识别父元素,您只需使用一个类来区分。 一种简单的效果方法。您可以找到a live example

主对话框配置::

jQuery("#dialog").dialog({
    autoOpen: false,

    modal: true,

    open: function() {

        var id = $('.parentelement').attr('id');
        $("#dialog").html("The parent id is::"+id);
        //alert("the id is:" + id);          
    },
     close: function(){
            $('.parentelement').removeClass('parentelement'); 
    }
});