我需要帮助理解js语法

时间:2010-10-18 07:16:13

标签: jquery onload

在你开始阅读之前...你应该知道下面有很多问题...我将非常感谢任何帮助,以了解麻省理工学院代码的任何部分(jQuery v0.4的jFlip插件),我觉得很难理解

如果您愿意,可以在http://plugins.jquery.com/project/jFlip

找到代码

看到它在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);

< /脚本>

  1. 该函数得到一个$而不是在另一个函数之前使用$?!而且看起来它变成了一个函数$(“g1”)......感觉就像一个代表(是吗?它是如何工作的)
  2. 绑定是如何工作的...这是一个js函数吗? (我的意思是语言的一部分)
  3. 什么是“g1”角色?我会在代码中的某个地方看到类似“精选案例”的内容,但找不到一个......
  4. 我认为难以实现的另一个代码安静是:

    ; (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. 为什么是“;”在他运作之前需要
    2. var中有一个var - 它是什么意思 - 它是一个类,结构还是什么?
    3. el = canvas.prev()... el在任何地方都没有被定义为保存的单词吗?
    4. 最后一个对我很重要的是:

      .click(function(){
        if(onCorner && !flipping) {
            el.trigger("flip.jflip",[index,images.length]);
        }
        return false;
      })
      
      1. 什么是点语法:.click(...一些函数定义......)
      2. 我需要让点击中的代码每5秒执行一次......就像onPageLoad(while(true)set timeout = 5000; call click;)
      3. 现在是感谢Trufa这些链接的好时机: How to get the bookflip effect with JavaScript

        非常感谢你的时间 阿萨夫

2 个答案:

答案 0 :(得分:1)

正如Sarfraz建议的那样,你需要阅读一本关于Jquery的手册。

我会回答你的问题,以便快速帮助你:

  • $ use表示它是一个Jquery对象。因此,您可以访问Jquery提供的所有方法/属性等。

  • $(“#g1”)不是委托,是在jquery对象中转换id为“g1”的html的方法。

  • “;”在“;(function($)”之前我认为你不需要它。

  • “var中有一个var”,我想你引用这个部分“{background:”green“,c”,这是一种将由不同变量组成的对象传递给方法/的方法类。

  • “el”用“obj”定义,完整的句子是“var obj,el = ...”,因此定义为变量。

答案 1 :(得分:1)

1个问题

这里有一个自动执行(function(){})();的匿名函数,在其中你将jQuery对象(实际上是一个函数)作为变量传递给$。这是相同的(称之为LALA而不是$):

(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在jQuery对象中实现为单独的子函数(方法)。其中有更复杂的代码处理不同浏览器中的事件,但确保您的事件不会绑定用于查看页面的米。

这个#g1是CSS样式选择器。您将不得不在谷歌上获取更多信息。这意味着“获取ID ='g1'的HTML元素并在其上调用以下方法”。在您的情况下,您选择的元素包含ID=g1并在其上调用jFlip()。要选择所有具有类ELEMENT的元素,您可以像$(".ELEMENT")一样使用点。

2问题

只有在同一行中写两个或多个语句时才需要分号:

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

所以你必须把它们写在不同的行中,如下所示:

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

或分开;在同一行:

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

对于vars,您必须知道JS中没有类型。您可以在var,integer,string ...和对象中使用函数。对象由使用关键字new的函数组成。在您的代码中,您将参考Flip保存到执行某些操作的匿名函数中...不需要声明变量var,因此您可以拥有el = 10并且它是有效变量定义

3问题

Dot语法不存在。您正在jQuery对象上调用.click(),该对象之前是.之前的行。

对于超时,您将需要更多的XP ...谷歌更多......