2012-10-11 31 views
2

我有一個JQuery的對話,其中有一個刷新父窗口beforeclose處理方法:JQuery的對話框:檢查調用元素beforeclose處理

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

一旦打開的對話框中,可以從多個位置被關閉。每次關閉對話框時,都會調用refreshParent()方法。

現在我需要檢查在某些情況下是否關閉對話框,不應調用refreshParent()。這樣做的

一種方法是把一個全局標誌象下面這樣:

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

,並呼籲對話結束前設置doRefreshParent爲true或false。但這似乎不是一個好方法。

有沒有什麼辦法可以在對話關閉被調用的位置(即被點擊的元素的id,因爲哪個對話框關閉發生)之前在closeclose處理器中檢查。這樣我們就可以控制refreshParent()的調用。

回答

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'); 
    } 
}); 
+0

完美!這正是我想要的。謝謝 –

+0

@ViralPatel,很高興爲您提供幫助。請小心刪除課程! – Nupur

+0

是的!作爲一個Java人,我怎麼能忘記「標記和掃描」:) –

相關問題