tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von ComFreek
  • 1 Beitrag von ComFreek
  • 1 Beitrag von CPoly
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
460
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von String
    String String ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    238
    Huhu zusammen,

    ich wollte mal Fragen ob jemand ein Tutorial kennt wie man sein eigenes kleines Framework basteln kann.
    Mir geht es darum, dass ich es hasse etwas einfach zu benutzen ohne zu verstehen, wie es funktioniert. Beste Beispiel ist jQuery. Überall wird's eingesetzt und kaum einer versteht was da passiert.

    Und ich würde mal gerne wissen, wie so etwas funktioniert.
    Wie macht jQuery z.b. dass dinge mit $ aufgerufen werden?

    Das Problem ist, wenn man danach googelt wird man mit Beispiel und sonstigen Mist zugeworfen. Wie es aber wirklich funktioniert, weiß ich nicht..

    Bin sehr dankbar für eure Tipps

    paD
     

  2. #2
    Martin Honnen Martin Honnen ist offline Mitglied Bronze
    Registriert seit
    Dec 2011
    Beiträge
    30
    Code :
    1
    2
    3
    
    function $(id) {
        return document.getElementById(id);
    }
    definiert z.B. einfach eine Funktion, deren Name "$" ist und die dann etwa als
    Code :
    1
    
    $('el1')
    aufgerufen werden kann. Das ist ein legaler Funkionsname, allerdings besagte die ECMAScript-Spezifikation in Ausgabe 3, dass solche Namen nur von Maschinen-generiertem Code benutzt werden sollen. In der Ausgabe 5 der ECMAScript-Spezifikation hat man diese Einschränkung allerdings entfernt.
     

  3. #3
    Avatar von String
    String String ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    238
    Okay, dass ist wirklich sehr einfach

    Aber wie funktioniert dann z.b. dass:
    Code javascript:
    1
    2
    3
    
    $('#a').click = function() {
     
    }

    Klar, das #a kann als Parameter übergeben.. Aber bei dem .click hört es mit dem Verstehen wieder auf

    Selbst wenn ich mir die jQuery.js jetzt anschaue und das mit dem $ verstehe. Will mir das mit dem .click nicht so ganz gefallen.

    Ich sehe irgendwie, dass die Funktion in Funktion aufruft und dadurch die Parameter übergeben werden. Aber wenn ich das versuche in vereinfachter form nach zu programmieren, schaff ich es einfach nicht.

    paD
     

  4. #4
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.363
    Blog-Einträge
    4
    Hallo,

    du könntest mal einen Blick auf den (unkomprimierten) Quelltext werfen:
    http://code.jquery.com/jquery-1.7.1.js
    (Bzw. auf der Startseite "Development" wählen und "Download" drücken).

    Zum "Finden" der Elemente via Selektoren (#id, .class, [attr], ...) benutzt jQuery das Sizzle Framework.

    Ein Tutorial für ein eigenes JS-Framework kenne ich jetzt nicht, aber hier habe ich dir mal ein kleines Beispiel geschrieben.


    Edit:

    click ist selbst auch nur eine Methode des jQuery-Objekts.
    Vereinfacht schaut das wahrscheinlich so aus:
    Code javascript:
    1
    2
    3
    4
    
    jQueryObj.prototype.click = function( func )
    {
      func();
    }
    String bedankt sich. 
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  5. #5
    Avatar von String
    String String ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    238
    Wow, danke!
    Dein Beispiel erklärt echt einiges.

    Allerdings verstehe ich nicht wofür:

    _$.prototype.html = function(str)
    ist, bzw. wo es aufgerufen wird.

    Und wie jQuery es macht, dass man statt domElement.addEventlistener einfach
    $("select").chance = function () ...
    schreiben kann..?

    Ich meine, wäre nicht so tragisch, aber einfacher ist es schon.
    Ich müsste in der $id das addEventListener einbauen oder..?

    paD
     

  6. #6
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.363
    Blog-Einträge
    4
    Ja gut, die html-Methode rufe ich in dem Beispiel nie auf.

    Hier noch einmal mit html()-Aufruf: http://jsfiddle.net/hvwXH/2/.


    Und wie jQuery es macht, dass man statt domElement.addEventlistener einfach
    $("select").chance = function () ...
    schreiben kann..?
    Da werden wahrscheinlich bei der Initialisierung die Funktionen gesetzt. Vielleicht schreibe ich auch noch ein Beispiel
    String bedankt sich. 
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  7. #7
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Zitat Zitat von String Beitrag anzeigen
    Und wie jQuery es macht, dass man statt domElement.addEventlistener einfach
    $("select").chance = function () ...
    schreiben kann..?
    Kann man nicht. Es heißt

    Code javascript:
    1
    2
    3
    
    $("select").change(function() {
        //
    });

    Was nur ein weiterer Methodenaufruf ist, dem eine Funktion übergeben wird. Und .change ist ein alias für

    Code javascript:
    1
    2
    3
    
    $("select").on('change', function() {
        //
    });


    Und wenn du in den Code guckst (wie ComFreek gesagt hat), findest du dort (bei .on) den Aufruf "jQuery.event.add", was in seinen Tiefen dann tatsächlich folgenden, von dir gesuchten, Code versteckt.

    Code javascript:
    1
    2
    3
    4
    5
    
    if ( elem.addEventListener ) {
        elem.addEventListener( type, eventHandle, false );
    } else if ( elem.attachEvent ) {
        elem.attachEvent( "on" + type, eventHandle );
    }
    String bedankt sich. 

  8. #8
    Avatar von String
    String String ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    238
    Okay, gut - so langsman komm ich weiter, danke dafür
    Das Problem ist nicht, dass ich nicht in die jQuery Datei geschaut habe, sondern nicht wusste wonach ich suchen konnte.

    Ich werd mal weiter rum Probieren und bald posten wie weit ich komme oder obs wieder irgendwo hängt

    paD
     

  9. #9
    Avatar von String
    String String ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    238
    Bin mittlerweile ne ganze ecke schneller.

    Noch ein bisschen Zeit und mein Framework steckt jQuery locker weg *lach*.
    Nein quatsch. Aber mittlerweile verstehe ich dir Vorgehensweise und hab auch schon einiges geschafft.

    Thread erledigt

    paD
     

Ähnliche Themen

  1. Eigenes HTML / CSS Framework.. [Hilfe bei Optimierung]
    Von moreplz im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 17.04.11, 11:43
  2. Eigenes Framework
    Von Perl-Neuling im Forum PHP
    Antworten: 3
    Letzter Beitrag: 27.10.08, 10:05
  3. Antworten: 10
    Letzter Beitrag: 14.11.07, 13:34
  4. Antworten: 5
    Letzter Beitrag: 12.06.06, 07:28
  5. eigenes CMS
    Von SchwarzerWolf im Forum Content Management Systeme (CMS)
    Antworten: 1
    Letzter Beitrag: 19.12.02, 20:58