JQuery

**jQuery**, JavaScript գրադարան, որը կենտրոնացված է JavaScript-ի և HTML-ի փոխազդեցությունն հեշտացնելու համար։ jQuery գրադարանի օգնությամբ կարելի է հեշտությամբ ընտրել DOM տարրը, դիմել դրա ատրիբուտներին ու բովանդակությանը, փոփոխել դրանք։ jQuery-ն ունի նաև AJAX-ի հետ աշխատելու համար պարզ և հասկանալի API։

## Ստեղծման պատմությունը
Երբ Ջոն Ռեզիգը սկսեց հետաքրքրվել ծրագրավորմամբ, առաջինը, ինչ նա ուսումնասիրեց վեբ-ծրագրավորումից, դա HTML-ն էր։ Ռեզինգն արդեն կարողանում էր ծրագրավորել QBasic-ով, երբ իր ծանոթներից մեկը ցուցադրեց, թե ինչպես կարելի է ստեղծել վեբ-էջ Angelfire ծրագրի միջոցով՝ օգտագործելով HTML-ը։ Հայրը Սուրբ ծննդյան տոներին նվիրեց նրան HTML-ի երկու գիրք։ Այն ժամանակ, երբ նա սկսեց ծրագրավորել Visual Basic լեզվով, HTML-ն ու վեբ-դիզայնը սկսեցին հետաքրքրել նրան։

Բայց JavaScript-ի նկատմամբ իր հետաքրքրությունը սկսեց ավելի ուշ, մոտավորապես 2004 թ.։ Այդ տարի Ռեզինգը համակարգչային գիտությունների ոլորտում աստիճան ստացավ և, որոշ ժամանակ անց, կես դրույքով սկսեց աշխատել տեղական Brand Logic ընկերությունում։ Նա զբաղվում էր մի կայքի դիզայնով, որտեղ ստեղծվում էր scroll էֆեկտ։ Ջոնին դուր չէր գալիս այն, որ ինքն ստիպված է օգտագործել այլ մշակողների կոդը։ Նա որոշեց, որ պետք է լուրջ ուսումնասիրի JavaScript-ը։ Ուսումնասիրելով այն, նա հասկացավ, որ JavaScript-ը պարզ, բայց նուրբ լեզու է։ Այն բավականին հզոր է և կարող է օգնել լուծել բավականին լուրջ և դժվար խնդիրներ։ Հաջորդ մի քանի տարիների ընթացքում Ջոնը ստեղծեց տարբեր JavaScript ծրագրեր, մինչև ավարտեց jQuery-ի մշակումը։ jQuery-ի ստեղծման հիմնական նպատակն էր գրել JavaScript-ի հետ աշխատանքը հեշտացնող բազմանգամյա օգտագործման կոդեր, ինչպես նաև դրա միջոցով մոռանալ տարբեր բրաուզերների կողմից այս կամ այն բանի աջակցության մասին։ Գրադարանը ներկայացվեց 2006 թվականին Նյու-Յորքում կայացած «BarCamp» կոնֆերանսի ժամանակ։

## Առանձնահատկություններ
* Բոլոր առաջատար բրաուզերներում աշխատող CSS ընտրիչների Sizzle շարժիչը, որն առանձնացված է այլ նախագծում,
* Անցումը DOM-ի տարբեր մասերի ինչպես վերը նշված CSS ընտրիչների, այնպես էլ XPath-ի միջոցով (վերջինի համար հարկավոր է տեղադրել հատուկ հավելված),
* Իրադարձություններ,
* Տեսողական էֆեկտներ,
* AJAX,
* JavaScript հավելվածներ (փլագիններ)։

## Օգտագործումը
jQuery-ն, որպես կանոն, միացվում է HTML փաստաթղթին ինչպես սովորական JavaScript ֆայլ։


```html4strict
<head>
    <script type="text/javascript" src="path/to/jQuery.js"></script>
</head>
```


jQuery-ի հետ ամբողջ աշխատանքը հիմնականում կատարվում է `$` ֆունկցիայի միջոցով։ Եթե կայքում jQuery-ից բացի օգտագործվում են այլ JavaScript գրադարաններ, որոնցում `$` նշանը օգտագործվում է այլ նպատակներով, ապա դրա փոխարեն կարելի է օգտագործել այլ ֆունկցիայի հոմանիշը՝ `jQuery` ֆունկցիան։ Երկրորդ եղանակով կատարվող աշխատանքը համարվում է ավելի ճիշտ։ Բայց, որպեսզի երկրորդ եղանակով գրված կոդը շատ մեծ չստացվի, կարելի է այն գրել հետևյալ կերպ.

```javascript
jQuery(function($) {
  // այստեղ $ նշանը միշտ համարվում է jQuery օբյեկտ անկախ այլ գրադարանների առկայությունից
})
```


jQuery-ի հետ աշխատանքը կարելի է բաժանել 2 տեսակի՝
* `$()` ֆունկցիայի միջոցով jQuery օբյեկտի ստացում։ Օրինակ, որպես այդ ֆունկցիայի պարամետր գրելով որևէ CSS ընտրիչ, կարելի է ստանալ այդ ընտրիչին համապատասխանող HTML տարրերի jQuery օբյեկտը, որի տարբեր մեթոդների միջոցով մենք կարող ենք աշխատել այդ տարրերի հետ։ Եթե մեթոդը ոչինչ չունի վերադարձնելու, ապա այն վերադարձնում է այդ jQuery օբյեկտի հղումը։ Դա հնարավորությունն է տալիս կիրառել, այսպես կոչված, «հոսող միջերես»։
* `$` օբյեկտի գլոբալ պարամետրերի կանչում։

Այս օրինակում ներկայացված է, թե ինչպես կարելի է ընտրել միանգամից մի քանի DOM հանգույցներ։ Այստեղ `$` ֆունկցիային տրվում է որոշակի CSS ընտրիչ, որի արդյունքում ֆունկցիան վերադարձնում է jQuery օբյեկտ։ Այդ օբյեկտը իր մեջ պարունակում է HTML էջի որոշակի քանակով տարրեր։ Այնուհետև այդ տարրերի հետ jQuery-ի մեթոդների միջոցով փոփոխություններ է կատարվում։

```javascript
$("div.test").add("p.quote").addClass("blue").slideDown("slow");
```

jQuery-ն գտնում է էջի բոլոր div տարրերը, որոնք ունեն test դաս, ինչպես նաև բոլոր p տարրերը, որոնք ունեն quote դաս, այնուհետև բոլոր դրանց ավելացնում է blue դաս և տեսանելիորեն դանդաղ իջեցնում է դրանք։
Այստեղ add, addClass և slideDown մեթոդները վերադարձնում են ընթացիկ $("div.test") օբյեկտի հղումը։ Հենց դրա շնորհիվ է, որ հնարավոր է դառնում այսպիսի շղթա ստեղծել։

`$.`-ով սկսվող մեթոդները հարմար են կիրառել գլոբալ օբյեկտների վերամշակման համար։

```javascript
$.each([1,2,3], function() {
  document.write(this + 1);
});
```

Այս օրինակում էջի վրա կերևա `234` գրառումը։

`$.ajax`-ը և այլ համապատասխան ֆունկցիաներ հնարավորություն են տալիս օգտագործել AJAX-ի մեթոդները։ Օրինակ՝

```javascript
$.ajax({
  type: "POST",
  url: "some.php",
  data: {name: 'John', location: 'Boston'},
  success: function(msg){
    alert( "Data Saved: " + msg );
  }
});
```

Այս օրինակում դիմում ենք `some.php` սկրիպտին `name=John&location=Boston` պարամետրերով, իսկ ստացված արդյունքը արտարծվում է `alert()`-ի միջոցով։

Իսկ ահա այս օրինակում մենք jQuery―ի միջոցով տարրին ավելացնում ենք click իրադարձության վերամշակիչ՝

```javascript
$("a").click(function() {
    alert("Hello world!");
  });
```

Տվյալ դեպքում,  տարրին մկնիկով կտտացնելուց հետո կկատարվի `alert("Hello world!")` կոդը, այսինքն՝ կարտարծվի «Hello world!» արտահայտությունը։

## Տարբերակների պատմությունը

## Այլ ապրանքների հետ ինտերգրացումը
2008 թ. սեպտեմբերի 28-ին jQuery-ի պաշտոնական բլոգում հայտնեցին այն մասին, որ Microsoft և Nokia ընկերությունները պատրաստվում են համագործակցել նշակողների խմբի հետ։ Microsoft ընկերությունը պատրաստվում է ինտեգրացնել jQuery-ի կոդի և օրինակների ելատեքստը ASP.NET-ի հետ, իսկ Nokia-ն պատրաստվում է ինտեգրացնել jQuery-ն իր բջջային վիդջեթներում։

## Մշակողների թիմը
Գրադարանի վրա աշխատանքները բաժանված են 5 խմբերի։

## Տես նաև
* Dojo
* Extjs
* jQuery UI
* jQuery Mobile
* MooTools
* Prototype

## Ծանոթագրություններ

## Արտաքին հղումներ
* JQuery դասընթաց
* Պաշտոնական կայքը 
* jQuery-ի առցանց այլընտրանքային ուղեցույց  

Կատեգորիա:JavaScript գրադարաններ
Կատեգորիա:Թվային գրադարաններ