Javascript object vraag
Ik heb een bestaande functie namelijk:
function $(id) {
return document.getElementById(id);
}
Maar nou wil ik dat iemand bijvoorbeeld: $("idvanelement").fadeIn kan doen en dat ik dan gewoon daar een functie van kan maken, bijvoorbeeld:
function fadeIn() {
//Code van functie
}
Ik heb dit al geprobeerd maar het werkte niet:
var $ = new Object();
$ = function(id) {
return document.getElementById(id);
}
$.fadeIn = function() {
//Code
}
function $(id) {
return document.getElementById(id);
}
Maar nou wil ik dat iemand bijvoorbeeld: $("idvanelement").fadeIn kan doen en dat ik dan gewoon daar een functie van kan maken, bijvoorbeeld:
function fadeIn() {
//Code van functie
}
Ik heb dit al geprobeerd maar het werkte niet:
var $ = new Object();
$ = function(id) {
return document.getElementById(id);
}
$.fadeIn = function() {
//Code
}
PHP hulp
22/11/2024 19:31:04Noppes Homeland
30/05/2010 20:59:27Jelmer -
31/05/2010 00:47:26Snel antwoord:
Goed antwoord: kijk naar de broncode van jQuery, of leer over hoe Javascript omgaat met this, maar dat is een redelijke uitdaging op zich :P Je kan ook kijken naar PrototypeJs's aanpak, om alle elementen te voorzien van fadeIn via HTMLElement.prototype, al wordt dat tegenwoordig gezien als een bad practise omdat het gemakkelijk andere Javascript in de war kan gooien.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
function $(id) {
var el = document.getElementById(id);
el.fadeIn = fadeIn;
return el;
}
function fadeIn() {
this.style.display = 'block';
}
$('menu').fadeIn(); // this in fadeIn verwijst terug naar el, het element met id 'menu'.
var el = document.getElementById(id);
el.fadeIn = fadeIn;
return el;
}
function fadeIn() {
this.style.display = 'block';
}
$('menu').fadeIn(); // this in fadeIn verwijst terug naar el, het element met id 'menu'.
Goed antwoord: kijk naar de broncode van jQuery, of leer over hoe Javascript omgaat met this, maar dat is een redelijke uitdaging op zich :P Je kan ook kijken naar PrototypeJs's aanpak, om alle elementen te voorzien van fadeIn via HTMLElement.prototype, al wordt dat tegenwoordig gezien als een bad practise omdat het gemakkelijk andere Javascript in de war kan gooien.
Gewijzigd op 31/05/2010 00:50:18 door Jelmer -