2016-09-27 4 views
0

Ich versuche, ein Klickereignis zu einem des Elements hinzuzufügen, das innerhalb eines iframe von iframe verschachtelt wird.Hinzufügen `klicken` Ereignis zu Kind von` iframe` von `iframe` - nicht woking

dies ist ein iframe .ssueContentIframe unter diesem gibt es eine andere iframe als #SmartReportTabContent1 hinzugefügt so innerhalb des zweiten iframe Element, Ich versuche, ein Click-Ereignis wie folgt hinzuzufügen:

Grundsätzlich weiß ich nicht, wenn beide iframe wird geladen und alle Elemente zur Verfügung stehen, für die Zukunft ich füge:

$('.ssueContentIframe').contents().find('#SmartReportTabContent1').find('.ui-grid-selection-row-header-buttons.ui-grid-icon-ok.ui-grid-row-selected').on('click', function(){ 
      alert('Hi'); 
     }); 

aber nicht funktioniert. Was ist die korrekte Art zu warten, bis beide von iframe existieren und das Click-Ereignis zu einem der Elemente hier hinzufügen?

Vielen Dank im Voraus!

Antwort

0

Sie müssen "Inhalt" auch auf dem zweiten iframe verwenden. Um darauf zu warten, dass es geladen wird, können Sie das Ereignis "ready" auf dem zweiten iframe verwenden.

zB:

$("#SmartReportTabContent1").find("iframe").ready(function(){ 
    // do something once the iframe is loaded 
}); 

aktualisieren

-this Frage beziehen

+0

kann ich dies innerhalb von 'onDocumentReady' verwenden -? erster iframe Klassenname ist 'ssueContentIframe', innen i als' # SmartReportTabContent1' zweite iframe bin immer verwenden – 3gwebtrain

+0

so einfach SmartReportTabContent1 als iframe Container – Stormhashe

+0

ich so versucht: '$ (document) .ready (function() {$ ('# SmartReportTabContent1') .ready (function() { console.log ('ich bin bereit'); }); }); 'Aber auf der betriebsbereiten Funktion selbst werde ich getröstet. (zur Zeit ist hier überhaupt kein iframe) – 3gwebtrain

0

Nun, ich diese bearbeiten, zuerst eine Last des ersten iframe tun und überprüfen Sie es gut geladen ist, dann tun die Funktion bei Klick auf das Element.

$(function(){ 
    $('#foo1').load(function(){ 
     alert("Loaded"); 
      $('#foo1').contents().find('iframe').contents().find('#test').on('click', function(event) { 
       alert("Working"); 
      }); 
    }); 
}); 

ich es auf meinem Computer getestet und funktionierte perfekt, erinnere mich an die Bibliothek betritt und, wenn Sie es nicht funktionieren wird keine Bibliothek hinzufügen.

Ändern Sie einfach die ID, die ich verwendet, zu Ihren IDs.

+0

Ich habe versucht, aber nicht funktioniert. vielleicht liege ich hier falsch. Eine Sache ist, nach dem Laden von 'ssueContentIframe' Ich klicke auf einen Link. Dieser Link lädt den anderen iframe hier. in der Seite des neuen versuche ich, das Ereignis – 3gwebtrain

+0

hinzuzufügen, mehr Info ist, Inhalte laden durch 'angular'-' ng-view' - – 3gwebtrain

Verwandte Themen