2016-07-04 9 views
0

Ich habe eine AGB-Seite gemacht. Ich möchte es in einem jQuery-Dialog erscheinen lassen.Wie jquery ui Dialog zu schließen, wenn Sie auf den Link im Dialogfeld klicken

Ich erkläre eine Variable für den Dialog:

var $dialog = $('#TCsWindow').html('<iframe style="border: 0px;" src="importantInformation.html" width="100%" height="100%"></iframe>').hide(); 

und dann eine Funktion erstellen, um den Dialog zu öffnen:

function opendialog(page) { 
    $dialog.dialog({ 
     title: "", 
     autoOpen: false, 
     dialogClass: 'dialog_fixed TCdialog centered', 
     modal: true, 
     height: 500, 
     width:400, 
     responsive: true, 
     draggable:true, 
     open: function (event, ui) { 
      $('#TCsWindow').css('overflow', 'hidden'); //this line does the actual hiding 
      } 
     }); 
    $dialog.dialog('open'); 
} 

und schließlich einen Klick() Ereignis zu einem Element auf der Seite befestigen :

$("#TCLink").click(function(event) { 
    event.preventDefault(); 
    opendialog("importantInformation.html"); 
}); 

Das Problem, das ich habe, ist, dass es einen Link in der withinInformation.html Seite gibt Wenn Sie darauf klicken, muss nur der Dialog geschlossen werden. Der Link hat eine ID von „closeTC“:

$("#closeTC").click(function(event){ 
    $dialog.close(); 
}); 

aber was passiert, ist, dass die tatsächlichen enthalten Seite geladen wird innerhalb des iFrame. Es scheint, dass die event.preventDefault(); wird ignoriert.

Kann jemand Licht in die Richtung werfen, wo ich falsch liege? Das standardmäßige "x" im Dialog funktioniert einwandfrei, aber ich weiß nicht, wie ich herausfinden soll, wie das funktioniert.

Antwort

0

Sie benötigen die jQuery .dialog("close") Methode aus dem Elternteil zu nennen:

Sehen Sie diese answer Referenz.

Der Kodex

$(parent.document).find('#TCsWindow').dialog("close"); 
+0

Das große Arnav ist - vielen Dank für Ihre Hilfe! –

0

Das Dialogfeld befindet sich im übergeordneten Fenster und nicht innerhalb des iFrames, um über ein iframe auf ein Element im übergeordneten Fenster zuzugreifen, das Sie verwenden können parent.

$(parent.document).find('#TCsWindow').dialog("close");