molily: problem

Beitrag lesen

Hallo,

$(function() {

$("#ul1 > li").click(function(li) {
  var url = $(li).find("a").attr("href");
  document.window.location.href = url;
});
});


> >   
> > Wie nennt man diese Schreibweise einer Funktion?  
>   
> Immediately Invoked Function Expression (IIFE), hier die jQuery-Notation davon.  
  
Das ist keine Immediately-Invoked Function, was man daran erkennt, dass sie nicht immediately invoked wird. ;) Dazu fehlt der Call-Operator.  
  

> > Was ist der Unterschied zwischen  
> >   
> > `function whatever() {}`{:.language-javascript}  
> >   
> > und  
> >   
> > `$(function() {});`{:.language-javascript}  
>   
> ... und der Variante ohne jQuery  
>   
>    `(function() {}) ();`{:.language-javascript}  
>   
> Beispiel 1 definiert eine Funktion mit einem Namen, die durch Angabe ihres Namens und eines Klammernpaares (ggf. mit Parameterliste) bei Bedarf aufgerufen wird. Beispiel 2 und 3 definieren eine anonyme (namenlose) Funktion, die im jQuery-Fall wegen des umschließenden $(), im anderen Fall durch die angehängten Funktionsklammern sofort nach der Deklaration aufgerufen wird.  
  
Das gilt für Beispiel 2, nicht für Beispiel 3.  
  
$(fn) ist äquivalent zu [$(document).ready(fn)](http://api.jquery.com/ready/). Es registriert in neueren Browsern einen Handler für den Event [DOMContentLoaded](https://developer.mozilla.org/en-US/docs/Web/Reference/Events/DOMContentLoaded) bei document. Da DOMContentLoaded bereits gefeuert worden sein kann, wird mit document.readyState geprüft, ob das DOM bereits zur Verfügung steht.  
  
<http://www.w3.org/TR/html5/dom.html#dom-document-readystate>  
<http://www.w3.org/TR/html5/dom.html#current-document-readiness>  
  
Falls ja, wird die übergebene Funktion sofort ausgeführt (um genau zu sein: asynchron bei der nächsten Gelegenheit). Insofern verhält sich der Code ähnlich zu einer IIFE. Das ist ein netter Nebeneffekt. Aber in erster Linie geht es hier darum, Code beim »DOM-ready« auszuführen.  
  
Siehe auch  
<https://github.com/jquery/jquery/blob/master/src/core/ready.js>  
  
Mathias

-- 
[Chaplin.js - JavaScript application architecture](http://chaplinjs.org/)
0 49

problem

  1. 0
    1. 0
  2. 0
    1. 0
      1. 0
        1. 0
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
        2. 0
      2. 7
        1. 0

          Korrektur am Codebeispiel

        2. 0
          1. 0
            1. 0
              1. 0
                1. 0

                  JQuery, Funktionen und Anonyme Funktionen

                  1. 0
                    1. 0
                      1. 0
                        1. 0
                    2. 0
                      1. 0
                      2. 0
                        1. 0
                          1. 0
        3. 0
        4. 3
          1. 0
      3. 0
      4. 0

        Gibt es Benchmark-Tools für Seiten mit Javascript?

  3. 0
  4. 0
  5. 1

    Sinnvoller Titel, Problembeschreibung

    1. 0
      1. 0
        1. 0
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
                  2. 0
                    1. 0