2010-10-18 180 views
0

在開始閱讀之前...您應該知道下面有很多問題...我將非常感謝幫助理解MIT代碼的任何部分(jQuery v0.4的jFlip插件)我覺得這很難理解我需要幫助理解js語法

,如果你喜歡在http://plugins.jquery.com/project/jFlip

你可以找到的代碼,看看它在http://www.jquery.info/scripts/jFlip/demo.html

<腳本類型的工作=「文/ 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. 功能得到了$,比使用前$另一個函數?它看起來像它變成了一個函數$(「g1」)...它感覺像一個代表(它是什麼?它是如何工作的)
  2. 綁定是如何工作的...這是一個js函數嗎? (我的意思是語言的一部分)
  3. 什麼是「g1」角色?我希望像在代碼的某個地方「中選擇的情況下」,但無法找到一個...

,我覺得很難的代碼的另一種和平是:

; (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沒有被定義在任何地方,它是一個保存的單詞的東西?

和最後一個是一個重要的是我:

.click(function(){ 
    if(onCorner && !flipping) { 
     el.trigger("flip.jflip",[index,images.length]); 
    } 
    return false; 
}) 
  1. 什麼是點語法:。點擊(...有些函數定義...)
  2. 我需要使點擊中的代碼每5秒執行一次...像onPageLoad(while(true)set timeout = 5000; call click;)

這是感謝Trufa爲那些lin KS: How to get the bookflip effect with JavaScript

謝謝你這麼多的寶貴時間 阿薩夫

+4

我建議你頭部到jQuery的文檔:HTTP://docs.jquery。com/Main_Page – Sarfraz 2010-10-18 07:18:36

回答

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); 

綁定在jQuery對象作爲單獨的子功能(方法)來實現。其中會有更復雜的代碼處理不同瀏覽器中的事件,但要確保您的事件不會綁定用於查看頁面的內容。

這是#g1是CSS樣式選擇器。你將不得不在谷歌上獲得更多信息。這意味着「獲取ID ='g1'的HTML元素並在其上調用以下方法」。在你的情況下,你選擇元素ID=g1並呼籲jFlip()就可以了。要選擇全部具有類ELEMENT的元素,可以像使用$(".ELEMENT")那樣使用點。

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

所以,你必須把它們寫在不同的行,像這樣:

只有當你寫在同一行的兩個或兩個以上的語句是這樣

2提問

分號需要

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

或與之分開;在同一行:

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

對於變量,你將不得不知道JS中沒有類型。你可以在var,integer,string ...和objects中有函數。對象由使用關鍵字new的函數組成。在你的代碼中,你可以將參考Flip保存到匿名函數中,該函數執行某些操作...聲明變量var不是必需的,因此您可以使用el = 10,並將其作爲有效的變量定義。

3問題

點語法犯規存在。您之前在一行中的.之前的jQuery對象上調用.click()

超時你必須有更多的XP ...谷歌多一些......

+0

+1很明顯,我不明白代碼,但它現在對我更有意義了...... xp是什麼? – Asaf 2010-10-18 08:32:51

+0

XP =經驗。我幾乎無法在這裏教你一切。你必須自己做。好的起點是閱讀大部分內容:docs.jquery.com/Main_Page – Cipi 2010-10-18 08:37:35

1

由於Sarfraz建議,你需要閱讀一個關於jQuery的手冊。

我會回答你的問題,幫助您快速:

  • 的$使用表明它是一個jQuery對象。所以你可以訪問Jquery提供的所有方法/屬性等等。

  • $(「#g1」)不是委託,是在jQuery對象中將id轉換爲g1的方式。

  • 「;」之前「;(功能($)」我不認爲你需要它「

  • 」有一個變種var「,我想你指的是這部分」{背景:「綠色」,C「 ,這是一種將由不同變量組成的對象傳遞給方法/類的方法。

  • 「el」用「obj」定義,完整句子爲「var obj,el = ...」,所以被定義爲一個變量。

+0

我已經編輯了我的答案和更多信息 – netadictos 2010-10-18 07:29:58