Vraag & Antwoord

Webprogrammeren & scripting

javascript framework

6 antwoorden
  • Hallo iedereen, zoals jullie al weten was ik voor de lol bezig mijn eigen framework te maken. Alle functies lukken, alleen niet de functie $() (om een element te selecteren) Zou iemand me kunnen uitleggen hoe dit gedaan wordt? En dan ook hoe je dat element kan doorgeven aan de volgende functie, bv. st.$("slider").width(); Ik heb al vele frameworks bekeken, en ik begrijp alles, alleen die functie niet. Al bij voorbaat dank, Mike Neyens.
  • Ik kan wel zoeken of het id is en zo en dan document.getElementById of classname of zo uitvoeren en dit aan een variabele toewijzen, maar ik weet niet hoe als je st.$("slider").width() doet, je de variabele over kan dragen naar de andere functie. als ik één keer de variabele heb, kan ik weer zelf verder. Ik hoop dat jullie het nu iets beter begrijpen. Groetjes, Mike
  • Wat je dus vraagt, hoe kan ik een functie roepen op de resultaten van de eerste functie (namelijk die selector functie) In jquery levert die selector functie altijd een array met results objecten terug. Als je bijvoorbeeld in jquery zon selector functie uitvoert en vervolgens in firebug gaat kijken wat er in zit zijn de resultaten altijd speciale jquery objecten. Deze jquery objecten bevatten al die functies zoals width e.d al. Een voorbeeldje: [code:1:ffe10b5d12] <script type="text/javascript"> function getObject(){ return { display : function(){alert("dit is een testje");}}; } getObject().display() </script> [/code:1:ffe10b5d12] De syntax van de getobject functie, is het aanmaken van een object en teruggeven. (json notatie even op googlelen) Om even terug te gaan naar jou width voorbeeld: Wat zij doen is dus eigenlijk: [code:1:ffe10b5d12] var resultaat = eenfunctie(); resultaat.nogeenfunctie(); (de variabele resultaat, is dus zelf een object met daarin een functie nogeenfunctie ) [/code:1:ffe10b5d12] Wat meer nuttige links: http://www.w3schools.com/js/js_objects.asp http://devlicio.us/blogs/sergio_pereira/archive/2009/02/09/javascript-5-ways-to-call-a-function.aspx Succes![/code]
  • Ik heb dus dit geprobeerd: [code:1:effaab1bf8] if (typeof MN === "undefined") { var MN = new Function(); MN.prototype = { results:[], // ik bespaar je het uitzoeken met regular expressions en dergelijke, // dus ik maak snel een id() functie. id : function(selector){ var elems = []; var id = document.getElementById(selector); elems.push(id); this.results[0]=elems; return this.results[0]; }, // gewoon simpele text functie test: function(){ var object = this.results; alert(object); } } } var $$ = new MN(); [/code:1:effaab1bf8] , maar het werkt gewoon van geen kanten. Ik kan bijvoorbeeld wel doen: var obj = $$.id('slider'); var html = obj.innerHTML; alert(html); Maar als ik dit probeer: $$.id('slider').test(); dan gaat het niet.
  • Dat klopt dat het niet werkt. Jouw id functie levert namelijk een normaal dom element object. Deze heeft geen test functie. Je moet dus zorgen dat die id functie een object teruggeeft wat onder andere jouw test functie heeft. Nu heb je die test functie gespecificeerd in hetzelfde object als waarin je id functie zit. Dus dit gaat wel werken: [code:1:6769a69d47] if (typeof MN === "undefined") { var MN = new Function(); MN.prototype = { results:[], // ik bespaar je het uitzoeken met regular expressions en dergelijke, // dus ik maak snel een id() functie. id : function(selector){ var elems = []; var id = document.getElementById(selector); elems.push(id); this.results[0]=elems; return {DomElement: this.results[0], test: testFunction}; } } } function testFunction(){ alert("hoi ik ben element:"+ this.DomElement); } var $$ = new MN(); $$.id('slider').test(); [/code:1:6769a69d47] Zie je die verschillen? Bij mij zit die test functie dus in het object wat de id functie terug geeft. Bij jou zat die test functie in het object waarin ook die id functie zat.
  • Ik heb nu een framework en het werkt perfect. Nu heb ik enkel nog een callback functie nodig, maar ik weet niet hoe je kan controleren of een functie voltooid is. Weet iemand anders dit wel?

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.