2016-07-11 4 views
0

Das Öffnen eines jQuery Mobile-Popup-Programms führt zu einem JavaScript-Laufzeitfehler.jQueryMobile - öffnen Sie ein Popup programmgesteuert schlägt mit js Fehler fehl

0x800a138f - JavaScript-Laufzeitfehler: Kann nicht Eigentum erhalten ‚nodeName‘ undefinierter oder NULL-Verweis

ich mit IE und Chrome getestet haben, die ähnliche Ergebnisse haben.

<div data-role="popup" id="myPopup" data-overlay-theme="b" data-theme="c" data-dissmissible="false" class="ui-corner-all"> 
    <div data-role="header"><h1></h1></div> 
    <div data-role="content" data-theme="a" class="ui-corner-all ui-content"> 
     <p id="myPopupText">test test</p> 
    </div> 
</div> 

<script type="text/javascript"> 
    $("#main").on("pageinit", function() { 
     $("#myPopup").popup("open", { transition: "slideup" }); 
    }); 
</script> 

Ich habe auch mit .popup() vor .popup ("open") versucht. Debuggen in VS2015 Ich sehe, dass das Popup angezeigt wird, aber während der Ausführung verschwindet es wieder, wenn die Ausnahme ausgelöst wird.

Was verursacht diese Ausnahme und wie kann ich sie beheben?

+0

Von welcher Datei kommt der Fehler? – gcampbell

+0

jquery.mobile-1.4.5.min.js – Kman

Antwort

0

Möchten Sie das Popup nur beim ersten Laden der Seite öffnen? wenn ja $ (document) .auf verwenden (... und versuchen, eine leichte Verzögerung.?

$(document).on("pageinit","#main", function(){ 
    setTimeout(function(){ 
     $("#myPopup").popup("open", { transition: "slideup" }); 
    }, 10); 
}); 

Wollen Sie es jedes Mal Popup die Seite besucht wird Verwenden Sie das pagecontainer Widget transition event:

$(document).on("pagecontainertransition", function(event, ui) { 
    if (ui.toPage.prop("id") == "main"){ 
     setTimeout(function(){ 
     $("#myPopup").popup("open", { transition: "flip" }); 
     }, 10); 
    } 
}); 

Haben Sie das Popup, nachdem die Seite in Reaktion auf eine Benutzeraktion geladen ist gestartet werden soll?

$(document).on("pagecreate","#main", function(){ 
    $("#btnPop").on("click", function(){ 
    $("#myPopup").popup("open", { transition: "flip" }); 
    }); 
}); 

DEMO

+0

Ich bekomme immer noch die JavaScript-Ausnahme beim Aufruf der .popup-Methode. Nicht behandelte Ausnahme in Zeile 7, Spalte 5548 in ..../jquery.mobile-1.4.5.min.js 0x800a138f - JavaScript-Laufzeitfehler: Kann nicht Eigentum erhalten 'nodeName' undefinierten oder NULL-Verweises – Kman

+0

@Kman Gibt der Codepen den Fehler? Wie und wo fügen Sie jQuery und jQuery Mobile scripts/CSS hinzu? Verwenden Sie andere Bibliotheken, die Konflikte verursachen könnten? – ezanker

+0

Nein, nur während der Ausführung in VS2015. Ich habe auch andere Bibliotheken deaktiviert, aber es hilft nicht. Dies ist nur ein Problem, das im Debug-Modus ausgeführt wird, außerdem läuft der Code einwandfrei. – Kman

Verwandte Themen