چکیده:این مقاله توضیح خلاصه ای از زبان برنامه نویسی جی کوئری است که بااستفاده از توابع مربوط به انسعی در معرفی و نحوه ی کارکرد این برنامه داره ......

 

 

 

فهرست:

1_معرفی زبان جی کوئری

 

2_روش نصب وتوابع

 

3_کارکرد

 

4_کارایی توابع

 

5_و اما در اینده

 

 

 

 

jquery

 

سالهای متمادی، جاوااسکریپت به سختي معروف بود! چون هم یادگیریش سخت بود و منبع

 

آموزشی خوب براش کم پیدا می شد، همکاربرد قابل قبولی براش نبود و هم باعث مشکلات امنیتیمیشد.

اما با گذشت زمان، رونق گرفتن AJAX، بیشتر شدن ایده های سمت کلاینت افزایش امنیت

 

مرورگرها که به دلیل توسعه مرورگرها بود، جاوااسکریپت خواهان بیشتری پیدا کرد.

اما وقتی jQuery متولد شد، اوضاع کلی فرق کرد. jQuery گفت برای اعمال تغییر در اجزای

 

صفحه با جاوااسکریپت، انیمیشن سازی و AJAX و غیره، نیازی به بلد بودن جاوااسکریپت ندارید.

 

من همه انها رو با یه سری توابع برای شماحل کردم اونم بصورت Cross-Browser یعنی در همه

 

مرورگرها یه نتیجه دارد!. ولی مگه میشه بدون بلد بودن یه زبان ازش استفاده کرد؟ راستش بله!

 

کافیه کار با سینتکس خود jQuery رو یاد بگیریم و بعدش همه چی حله. این یادگیری فقط سه چهار ساعت طول میکشه.

 

طریقه نصب و بکارگیری جی کوئری به این صورته که باید آخرین نسخه اش رو دانلود می کنیم

 

که یک فایل JS خواهد بود. این فایل رو توسط تگ به صفحه اضافه می کنیم و

 

کدهای شخصی خودمون رو هم توسط یه تگ دیگه، بعد از قبلی قرار میدیم.

viewplaincopy to clipboardprint?

1.  >  

2.    

3.        

4.          ...   

5.           type="text/javascript" src="jquery.js">  

6.           type="text/javascript">  

7.              // Our jQuery codes here   

8.            

9.          ...   

10.              

11.            ...   

12.         

 

 

 

 

 

 

 

...

  // Our jQuery codes here

...

...

یه نکته ای وجود داره بعضی جاها میگن jQuery رو بجای ، در آخر بذاریم. می

 

دونی که اون فایل jquery حدود 50 کیلوبایته و وقتی در قرار بگیره تا کامل لود و پردازش

 

نشه، ادامه صفحه و نمایش داده نمیشه و برای سرعتهای پایین، مدت زمانی وجود داره

 

که باید صفحه سفید تماشا کنند اما وقتی این فایل در آخر بذاریم، صفحه مسلما زودتر

 

ظاهر میشه. اما این روش استاندارد و همیشه خوبی نیست. چون اولا یه استانداردی میگه همه

 

تگهای باید در قرار بگیرند و دوما اینکه تصور کن ما کدهایی رو در جی کوئری

 

نوشتیم که قراره با شروع صفحه دیده بشن و صفحه طولانی باشه اونوقت کاربر باید منتظر بمونه

 

تا همه صفحه کامل لود شه و بعد بتونه افکتها و امکانات جی کوئری رو استفاده کنه که اصلا جالب

 

نیست. در کل این بستگی به ساختار صفحه و سایت داره که کدوم روش براش بهتره.

 

جی کوئری بر پایه اجزای DOM بنا شده (اجزا یا Elementهای DOM بصورت خیلی خلاصه، همون

 

اجزا و تگهای موجود در صفحه است). یعنی اولین قدم استفاده ازش انتخاب و پیدا کردن بخشی

 

از صفحه است که می خوایم باهاش کار کنیم. به این صورت که تقریبا همه توابع جی کوئری به Elementها متصل میشن.

 

یک تابع Global به نام jQuery وجود داره که اجزای DOM رو بهمون میده. در حالت عادی تابع $

 

هم وجود داره که دقیقا با تابع jQuery برابره. این تابع برای گرفتن Elementها از دو روش استفاده

 

می کنه یه روش استفاده از Selectorهای معتبر در CSS است که جی کوئری برای این کار از یک Selector آماده(Standalone) به نام Sizzle بهره میبره. روش دوم دادن خود Elementهای

 

جاوااسکریپت به این تابع است.

مثلا می خوایم یه

که ID به نام myDiv داره رو انتخاب کنیم:

viewplaincopy to clipboardprint?

1.  // CSS Selectors   

2.  $('#myDiv')   

3.  jQuery('#myDiv')   

4.    

5.  // Javascript Element   

6.  $( document.getElementById('myDiv') )   

7.  jQuery( document.getElementById('myDiv') )  

 

 

 

// CSS Selectors

$('#myDiv')

jQuery('#myDiv')

 

// Javascript Element

$( document.getElementById('myDiv') )

jQuery( document.getElementById('myDiv') )

هر چهار خط بالا یه نتیجه داره که اون دو تا آخری جالب نیست ولی گاهی اوقات لازم میشه.

 

حالا Element رو پیدا کردیم و میخوایم توابعش رو استفاده کنیم. برای کسانیکه هیچی از

 

جاوااسکریپت نمی دونن. این توابع با نقطه از هم جدا میشن. اصلی ترین تابع ready نام داره که

 

خیلی پر کاربرده و کارش اینه که یک تابع (که ما میسازیم) رو میگیره و درست موقعیکه همه اجزای DOM کامل شناخته شدند، اجرا میشه یعنی زودترین موقعی که ما میتونیم مطمئن شیم همه

 

تگهای موجود در صفحه رو مرورگر لود کرده و شناخته. گفته بودم که این فریم ورک به Elementها

 

متصل میشه و این تابع هم باید به body متصل بشه. می تونیم body رو توسط Selectorها بگیریم

 

ولی روش راحتتر استفاده از document.body است که یک مقدار استاندارد در مرورگرهاست که

 

باید به روش دومی که بالا گفتم استفاده شه یعنی روش جاوااسکریپت:

viewplaincopy to clipboardprint?

1.  >  

2.    

3.        

4.          ...   

5.           type="text/javascript" src="jquery.js">  

6.           type="text/javascript">  

7.              $(document.body).ready( function() {} );   

8.            

9.          ...   

10.              

11.            ...   

12.       

 

 

 

 

...

  $(document.body).ready( function() {} );

...

...

برای مبتدی ها، تابع در جاوااسکریپت به این شکل ها ساخته میشه:

viewplaincopy to clipboardprint?

1.  myFunction = function() {   

2.      // Functions codes here   

3.  }   

4.  // Or   

5.  function myFunction() {   

6.      // Functions codes here   

7.  }  

myFunction = function() {

// Functions codes here

}

// Or

function myFunction() {

// Functions codes here

}

و اینجوری استفاده میشن:

viewplaincopy to clipboardprint?

1.  myFunction();  

 

 

myFunction();

و می تونن مقادیری رو به عنوان پارامتر بگیرند:

viewplaincopy to clipboardprint?

1.  myFunction = function(someText) {   

2.      alert( someText );   

3.  }   

4.    

5.  myFunction('Hello');   

6.  myFunction('Boplo.ir');  

 

 

myFunction = function(someText) {

alert( someText );

}

 

myFunction('Hello');

myFunction('Boplo.ir');

اینجا someText به عنوان پارامتر قرار گرفته. پارامتر هر چی می تونه باشه. حتی میتونه خودش

یک تابع باشه:

viewplaincopy to clipboardprint?

1.  myFunction1 = function() {   

2.      // Function1 codes here   

3.  }   

4.  myFunction2 = function(func) {   

5.      // Function2 codes here   

6.  }   

7.    

8.  myFunction2(myFunction1);  

 

 

 

 

myFunction1 = function() {

// Function1 codes here

}

myFunction2 = function(func) {

// Function2 codes here

}

 

myFunction2(myFunction1);

که می تونیم بجای اینکه یه تابع بسازیم و نامش رو به عنوان پارامتر بدیم، خود تابع رو بین پرانتزها

 

تعریف کنیم و مشکلی هم پیش نیاد:

viewplaincopy to clipboardprint?

1.  myFunction2 = function(func) {   

2.      // Function2 codes here   

3.  }   

4.    

5.  myFunction2(function() {   

6.      // Function1 codes here   

7.  }); 

 

 

 

myFunction2 = function(func) {

// Function2 codes here

}

 

myFunction2(function() {

// Function1 codes here

});

اینجا ما خود تابع رو بجای اسمش استفاده کردیم.

اینا رو گفتم که با سینتکس جی کوئری راحتتر ارتباط برقرار کنی.

 

حالا برمی گردیم به همون تابع ready که بالا میبینی. این تابع هم یک تابع دیگه به عنوان پارامتر میگیره.

viewplaincopy to clipboardprint?

1.  >  

2.    

3.        

4.          ...   

5.           type="text/javascript" src="jquery.js">  

6.           type="text/javascript">  

7.              $(document.body).ready(function() {   

8.                 

9.                  alert('DOM is ready!'); 

10.                           

11.                    }); 

12.                  

13.                ...   

14.              

15.            ...   

16.          

 

 

 

 

...

$(document.body).ready(function() {

  alert('DOM is ready!');

 

});

...

...

اگه گیج شدی و چیزی متوجه نشدی، غصه نخور. می تونی شکلش رو بخاطر بسپاری و ازش

 

استفاده کنی و به چجوریش اهمیت ندی. فقط باید به پرانتزها و آکولادهای باز و بسته دقت کنی.

 

به عنوان اولین مثال، جی کوئری تابعی به نام css داره که هم مقدار CSS رو میده و هم اجازه میده تغییرشون بدیم:

viewplaincopy to clipboardprint?

1.  >  

2.    

3.        

4.           type="text/javascript" src="jquery.js">  

5.           type="text/javascript">  

6.              $(document.body).ready(function() {   

7.                 

8.                  alert( $('#myDiv').css('color') ); // Alerts Color   

9.                  $('#myDiv').css('color', 'red'); // Changes Color   

10.                           

11.                    });   

12.                  

13.              

14.              

15.                 id="myDiv">I love Boplo.ir

  

16.              

17.          

 

 

$(document.body).ready(function() {

  alert( $('#myDiv').css('color') ); // Alerts Color

  $('#myDiv').css('color', 'red'); // Changes Color

 

});

I love Boplo.ir

این کد اول رنگ myDiv رو alert میده و سپس رنگش رو تغییر میده و چون داره در تابع ready این

 

کار رو می کنه، در اولین فرصت این کار رو انجام میده یعنی اگر این کد رو اجرا کنی، همون اول

 

نوشته رو قرمز میبینی که خیلی سریع کد اجرا شده.

 

توابع جی کوئری رو میشه بصورت زنجیروار هم استفاده کرد. مثلا تابعی وجود داره به نام addClass

 

که کلاس CSS رو به Element اضافه می کنه. ما میخوایم هم رنگ myDiv رو عوض کنیم و هم

 

کلاس بهش اضافه کنیم:

viewplaincopy to clipboardprint?

1.  >  

2.    

3.        

4.           type="text/css">  

5.              .myClass { font-size:20px; }   

6.            

7.           type="text/javascript" src="jquery.js">  

8.           type="text/javascript">  

9.              $(document.body).ready(function() {   

10.                       

11.                        $('#myDiv').css('color', 'red').addClass('myClass');   

12.                           

13.                        // OR   

14.                        $('#myDiv').css('color', 'red');   

15.                        $('#myDiv').addClass('myClass');   

16.                           

17.                    });   

18.                  

19.              

20.              

21.                 id="myDiv">I love Boplo.ir