Meine erstes Framework: Ergänzung der Methoden
jex
- javascript
Hi Leute,
ich bin gerade dabei mein erstes eigenes Javascript-Framework zu schreiben.
Im Moment habe ich aber Probleme mein Haupt-Object mit Methoden zu ergänzen.
/**
* @author jex
*/
(function(){
//constructor
function proton(el) {
this.elements = [];
var cur_el;
for (var i = 0; i < el.length; i++) {
cur_el = el[i];
if (typeof cur_el == 'string') {
cur_el = document.getElementById(cur_el);
}
this.elements.push(cur_el);
}
return this.elements;
}
//methods
proton.prototype = {
/*each: function(fn){
for (var i = 0; i < this.elements.length; i++) {
fn.call(this, this.elements[i]);
}
return this;
}*/
foo: function(bar){
alert('foorbar');
return bar;
}
};
window.$ = function(){
return proton(arguments);
};
})();
Wenn ich nun
$('debuger').foo('peter');
aufrufe, wird aber nicht 'peter' zurückgegeben, sondern ich bekomme den Fehler "$("debuger").foo is not a function" :(
Ich verstehe das nicht, bitte helft mir.
MfG
J.Exner
window.$ = function(){
return proton(arguments);
};
Du musst hier dein Objekt auch erzeugen und die Methoden müssen this zurück geben.
Struppi.
window.$ = function(){ return proton(arguments); };
Du musst hier dein Objekt auch erzeugen und die Methoden müssen this zurück geben.
Struppi.
Ich glaube, das Problem ist das ich new vergessen habe, also
window.$ = function(){ return new proton(arguments); };
werde es gleich mal ausprobieren.
Struppi.
Bitte keine Fullquotes, nur das zitieren, auf das du antwortest.
Ich glaube, das Problem ist das ich new vergessen habe, also
window.$ = function(){ return new proton(arguments); };
werde es gleich mal ausprobieren.
Wie ich dir schon sagte, ist das nur ein Problem.
Struppi.
ich bin gerade dabei mein erstes eigenes Javascript-Framework zu schreiben.
Ich hab das gestern nicht gefunden. Aber dein Ansatz ähnelt diesem
http://www.dustindiaz.com/?p=302, hier siehst du aber was ich meine, mit dem Konstruktor und dem this.
Struppi.