2

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

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

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

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

这样做的一种方法是放置一个如下所示的全局标志:

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

并在调用对话框关闭之前将 doRefreshParent 设置为 true 或 false。但这似乎不是一个好方法。

有什么方法可以在 beforeclose 处理程序中检查调用对话框关闭的位置(即被点击的元素的 id,因为发生了对话框关闭)。这样我们就可以控制 refreshParent() 的调用。

4

1 回答 1

0

对于父元素的识别,可以简单的使用一个类来区分。一个简单的效果方法。你可以找到一个活生生的例子

主对话框配置::

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'); 
    }
});
于 2012-12-14T05:51:04.897 回答