2016-07-08 16 views
0

Im folgenden Code: code1 onClick-Funktion öffnet ein RichFace-Popup-Fenster. Ich brauche die onComplete-Funktion, die nach dem Schließen des Popups ausgeführt werden soll. Wie kann ich die OnComplete-Funktion verzögern? Gibt es eine Möglichkeit zu überprüfen, ob das Popup sichtbar ist oder nicht, wie in der code2 gezeigt, so dass diese Ausführung verzögert ist.

Die code1:
<a onclick ="showPopup('popup1')" oncomplete="" > Input </a>

Die code2:
<a onclick ="showPopup('popup1'); while(isVisible('popup1')){ }"
oncomplete="" > Input </a>So prüfen Sie, ob das Popup-Fenster richface sichtbar ist oder nicht

+0

Warum benutzen Sie nicht 'onhide'? –

+0

Ich bin RichFaces sehr neu. Wie benutzt man Onhide? Ist es so? ' – sudarshan

Antwort

0

Verwenden Sie einfach onhide Attribut aus rich:popupPanel. Die Beschreibung davon ist: Der clientseitige Code, der nach dem Popup ausgeführt wird, verschwindet.

<h:commandButton value="Call the popup"> 
    <rich:componentControl target="popup" operation="show" /> 
</h:commandButton> 

<rich:popupPanel id="popup" modal="true" 
    onhide="alert('My popup is now hidden!')" 
    onshow="alert('This popup just pop out!');"> 
    <!-- (... some body ...) --> 
</rich:popupPanel> 

Wenn Sie wirklich in JavaScript überprüfen wollen, ob die Pop-up versteckt oder sichtbar ist, verwenden Sie dann RichFaces Objekt in JavaScript, Pop-up finden und shown Feld überprüfen. Ein Beispiel:

if (RichFaces.$('MyPopupId').shown) {alert('Shown')} else {alert('Hidden')} 

prüfen RichFaces VDL für weitere Informationen.

+0

danke. Es half. – sudarshan

+0

Gern geschehen; -] –