Ich kann nicht meinen Kopf wickeln, um dieses Problem und das großen Angebot an Informationen, die ich im Netz gefunden:
Auf meinem Projekt wird die JQuery geladen mit „verschieben“ . Dies kann ich aufgrund von Projektstandards nicht ändern.
<script defer src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js'></script>
Jetzt muss ich auf eine Seite einige kleine Funktionen hinzufügen (derzeit inline):
Mit diesem Setup versucht der Browser, um das Inline-Scrip vor jQuery Lasten => „Nicht abgefangene Reference auszuführen: $ ist nicht definiert "
<body>
...
...
<script>
$("#city").change(function() {...some stuff...};
$("#doctor").change(function() {...some stuff...};
</script>
</body>
Was ist der kluge Weg, dies zu lösen?
haben das Skript einen Rückruf durchführen, die eine IIFE aktiviert, das die Javascript ausführt? – Roberrrt
Fügen Sie einen normalen Onload-Callback hinzu? Siehe http://stackoverflow.com/questions/27300058/window-onload-vs-script-defer – kennytm
Ich habe versucht, alles in ein window.onload = function() {...} zu wickeln, aber dies lähmt die $ (Selektor) .change() Funktionen .. (Ich verstehe nicht, warum ..) – caliph