Jquery wel ingeladen?
Krijg je een foutmelding? Wel met de developer tools kijken dan!
Is appwindowbar een dynamisch aangemaakt element?
?
Onbekende gebruiker
21-07-2014 18:22
jQuery is ingeladen via Google Hosted Libaries. Via de console kreeg ik wel een foutmelding maar dat was een php foutje. de class appwindowbar is een element die ik zelf erin heb gezet en die niet via JS op jQuery word aangemaakt
Hoeveel appwindows heb je?
Indien je er één hebt: gebruik dan een id in plaats van een class. een class is meer voor een groep elementen.
Indien je er meerdere hebt maak je ze met jouw code dan allemaal fullsize. (als het zou werken).
Daar was ik inderdaad al bang voor.
Wat er nu gebeurt is dat de js code uitgevoerd wordt in de browser zodra het geladen is. Dat betekent dat er een event handler wordt gezien (de click functie) en dat de browser dan gaat zoeken naar het appwindowbar element. Dat element bestaat op dat moment echter nog niet, want dat wordt pas erna geladen. Resultaat: de event handler wordt aan geen enkel element gehangen en zal dus ook niet worden geactiveerd.
Oplossing 1: plaats alle event handlers (en bij voorkeur all jquery code) binnen een $(document).ready() blok. Dan wordt de code pas uitgevoerd als het hele document geladen is en dus ook alle elementen bestaan:
[code lang=js]
$(document).ready(function(){
$ (function (){
$(".appwindow").draggable();
});
$ (function (){
$(".appwindowbar").click({
$(".appwindow").addClass("fullsize");
});
});
});
[/code]
Oplossing 2: Plaats al je javascript code in een script tag als allerlaatste voor de body sluiten tag. Op die manier wordt al je code wel direct uitgevoerd, maar omdat dan de elementen al bestaan kunnen de event handlers wel correct worden gelinkd.
Ik ga je helemaal gelijk geven Frank!
Zo heb ik het nog nooit gebruikt en daarom er waarschijnlijk overheen gekeken. Inderdaad moet $(function(){}); ook werken en is dat deel dus niet het probleem. Je andere opmerking, daar zal het dan liggen....