2016-06-10 20 views
0

Dinge existiert zu beachten:
Ich habe keinen Zugriff auf HTML (von einem Motor gerendert)
jQuery im Motor enthalten ist (weshalb ich nicht enthalten es in mein Code)Getting a Typeerror-Funktion nicht Fehler

Dieser Code einen Link führt und spritzt es in den HTML-Code:

$(document).ready(function(){ 
    addSS('https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css'); 
    addScript('https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js'); 
    addScript('//InjectedHTML.js'); 
}); 

function addScript(str){ 
    var script = document.createElement('script'); 
    script.src = str; 
    document.head.appendChild(script); 
}; 

function addSS(str){ 
    var link = document.createElement('link'); 
    link.rel= 'stylesheet'; 
    link.href = str; 
    link.type= 'text/css'; 
    document.head.appendChild(link); 
}; 

InjectedHTML picker in HTML setzt (in einer separaten Datei aus dem Code oben):

$(document).ready(function() { 
    addClass();       //adds class attribute to an input that allows me to use datepicker function 
    datePicker();      //adds calendar 
}); 
function addClass(){ 
    $("#DateWrapper input").attr("class", "datepicker"); 
}; 

function datePicker(){ 
    $(".datepicker").datepicker(); 
}; 

immer diese Fehlermeldung:
InjectedHTML.js: 35 Uncaught Typeerror:. $ (...) picker ist keine Funktion

Vielen Dank für Ihre Hilfe!

+0

Dies wird Ihnen wahrscheinlich helfen: http://StackOverflow.com/quest ionen/14328762/jquery-ui-loaded-event –

+0

Überprüfen Sie, ob Ihr JS-Pfad richtig ist –

+0

JS-Pfad ist korrekt. – juice

Antwort

1

Es ist ein paar Jahre her, seit ich den Status des manuellen Ladens von Skripts in das DOM betrachtet habe, aber es gibt normalerweise eine Variante eines loaded Ereignisses, das ausgelöst wird, wenn das Skript tatsächlich geladen wurde.

Im Allgemeinen gibt es etwas asynchronen über den Prozess, weil es gehen muss und holen Sie die Datei. Dies bedeutet, dass sie die Ausführung der JavaScript-Engine wahrscheinlich nicht stoppen werden, während dies geschieht. Dies bedeutet in gewisser Weise, dass Sie sich einen Rückruf wünschen.

Dafür gibt es verschiedene Bibliotheken. Wenn Sie sie nicht verwenden möchten, lesen Sie die Quelle und untersuchen Sie die Anforderungen der Plattform, auf die Sie ausgerichtet sind.

Stuff wie folgt aus:

wie jquery Looks hat auch eine Form von dieser: https://api.jquery.com/jquery.getscript/

Verwandte Themen