2010-10-18 5 views
0

Avant de commencer à lire ... Vous devriez savoir qu'il y a beaucoup de questions ci-dessous ... J'apprécierai toute aide pour comprendre une partie du code MIT (plugin jFlip pour jQuery v0.4) que je trouve très difficile à comprendreJ'ai besoin d'aide pour comprendre la syntaxe js

vous pouvez trouver le code si vous le souhaitez à http://plugins.jquery.com/project/jFlip

Et voir travailler à http://www.jquery.info/scripts/jFlip/demo.html

script type < = "text/javascript>

(function($){  
     $(function(){  
      $("#g1").jFlip(800,800,{background:"green",cornersTop:false}). 
      bind("flip.jflip",function(event,index,total){ 
       $("#l1").html("Image "+(index+1)+" of "+total); 
      });   
     }); 
    })(jQuery); 

</script>

  1. la fonction obtient un $ et que utilise le $ avant une autre fonction ?! et qu'il semble que cela devienne une fonction $ ("g1") ... on se sent comme un délégué (comment ça marche?)
  2. Comment fonctionne le bind ... c'est une fonction js non? (Je veux dire une partie de la langue)
  3. quel est le rôle "g1"? J'attends quelque chose comme « select cas » quelque part dans le code, mais ne peut pas trouver un ...

Une autre paix de code que je trouve dur:

; (function($) { 
     var Flip = function(canvas, width, height, images, opts) { 
     //private vars 
     opts = $.extend({ background: "green", cornersTop: true, scale: "noresize" }, opts); 
     var obj = this, 
     el = canvas.prev(), 
  1. pourquoi est la ";" nécessaire avant de fonctionner
  2. il y a un var dans un var - qu'est-ce que cela signifie - c'est une classe, struct ou quoi?
  3. el = canvas.prev() ... el n'est défini nulle part, est-ce un mot enregistré pour quelque chose?

et dernier est celui qui est important pour moi:

.click(function(){ 
    if(onCorner && !flipping) { 
     el.trigger("flip.jflip",[index,images.length]); 
    } 
    return false; 
}) 
  1. quelle est la syntaxe de points: .cliquez (... une définition de fonction ...)
  2. J'ai besoin pour faire le code dans le clic pour exécuter toutes les 5 secondes ... comme onPageLoad (while (true) set timeout = 5000; appel clique;)

C'est un bon moment pour remercier Trufa pour les ks: How to get the bookflip effect with JavaScript

Merci beaucoup pour votre temps Asaf

+4

Je vous suggère de la tête sur docs jQuery: http: //docs.jquery.com/Main_Page – Sarfraz

Répondre

1

1 question

Ici, vous avez une fonction anonyme qui exécute automatiquement (function(){})(); et dans lequel vous passez l'objet jQuery (qui est en fait une fonction) comme variable qui s'appelle $. Ceci est la même (l'appelant LALA et non $):

(function(LALA){  
     LALA(function(){  
      LALA("#g1").jFlip(800,800,{background:"green",cornersTop:false}). 
      bind("flip.jflip",function(event,index,total){ 
       LALA("#l1").html("Image "+(index+1)+" of "+total); 
      });   
     }); 
    })(jQuery); 

Bind est mis en oeuvre dans l'objet jQuery comme fonction secondaire séparé (méthode). Il y a du code plus compliqué qui gère les événements dans les différents navigateurs, mais s'assure que votre événement se lie à aucun mètre ce que vous utilisez pour voir la page.

Ce #g1 est un sélecteur de style CSS. Vous devrez google dessus pour plus d'informations. Cela signifie "obtenir l'élément HTML qui a ID = 'g1' et appelez la méthode suivante". Dans votre cas, vous sélectionnez l'élément avec ID=g1 et appelez jFlip() à ce sujet. Pour sélectionner les éléments qui ont tous la classe ELEMENT, vous devez utiliser le point comme $(".ELEMENT").

2 Question

Semicolon est nécessaire que si vous écrivez deux ou plusieurs déclarations dans la même ligne comme celle-ci:

alert("lalala") var a = 2+3 

vous devez donc les écrire dans des rangées séparées, comme suit:

alert("lalala") 
var a = 2+3 

Ou séparer avec; dans la même rangée:

alert("lalala"); var a = 2+3 

Pour les vars, vous devez savoir qu'il n'y a pas de types dans JS. Vous pouvez avoir une fonction dans var, integer, string ... et des objets. Les objets sont constitués de fonctions utilisant le mot-clé new. Là dans votre code vous enregistrez la référence Flip à la fonction anonyme qui fait quelque chose ... Pour déclarer les variables var n'est pas nécessaire, donc vous pouvez avoir el = 10 et cela se présente comme une définition de variable valide.

3 Question

ne marche pas la syntaxe Dot existe. Vous appelez .click() sur l'objet jQuery qui était avant le . dans une ligne précédente.

Pour délai d'attente vous devrez avoir plus XP ... google un peu plus ...

+0

+1 De toute évidence, je ne comprends pas le code, mais il me fait un peu plus de sens maintenant ... qu'est-ce que xp? – Asaf

+0

XP = Expérience. Je peux à peine vous apprendre tout ici. Vous devrez le faire vous-même. Un bon point de départ est de lire la plupart de ceci: docs.jquery.com/Main_Page – Cipi

1

Comme le suggère Sarfraz, vous devez lire un manuel sur les Jquery.

je répondrai à vos questions pour vous aider rapidement:

  • l'utilisation de $ l'indique est un objet Jquery. Donc, vous pouvez accéder à toutes les méthodes/propriétés etc ... que Jquery fournit. Le $ ("# g1") n'est pas un délégué, est le moyen de convertir le html avec l'id "g1" dans un objet jquery

  • le ";" avant "; (function ($)" Je ne pense pas que vous en ayez besoin

  • "il y a une var dans une var", je suppose que vous faites référence à cette partie "{background:" green ", c" , c'est un moyen de passer un objet composé de différentes variables à une méthode/classe

  • "el" est défini avec "obj", la phrase complète est "var obj, el = ...", donc est défini comme étant une variable.

+0

J'ai édité ma réponse avec plus d'info – netadictos

Questions connexes