jQuery Succinctly plug-in-uri jQuery

Utilizați $ Alias ​​când construiți un plugin

Când scrieți un plugin jQuery, ar trebui implementată aceeași rutină de prevenire a conflictelor utilizată cu codul vechi jQuery obișnuit. Având în vedere acest lucru, toate pluginurile ar trebui să fie conținute într - un domeniu de aplicare privat în cazul în care $ alias poate fi folosit fara teama de conflicte sau rezultate surprinzatoare.

Structura de codare de mai jos ar trebui să pară cunoscută, deoarece este utilizată în aproape toate exemplele de cod din această sesiune.

       

Plugin-uri noi Atașați-vă la jQuery.fn Object pentru a deveni Metode jQuery

Pluginurile noi sunt atașate la jQuery.fn obiect, deoarece aceasta este o comandă rapidă sau un alias pentru jQuery.prototype. În exemplul nostru de codare de mai jos, adăugăm pluginul de numărare la jQuery.fn obiect. Procedând astfel, noi creăm propria noastră metodă jQuery personalizată care poate fi folosită pe un set înfășurat de elemente DOM.

Practic, un plugin atașat la jQuery.fn ne permite să ne creăm propriile metode personalizate similare cu cele găsite în API. Acest lucru se datorează faptului că atunci când atașăm funcția noastră de plugin jQuery.fn, funcția noastră este inclusă în lanțul prototip-$ .fn.count = funcția () -pentru obiectele jQuery create folosind funcția jQuery. Dacă vă suflă mintea, amintiți-vă că adăugați o funcție jQuery.fn  înseamnă că cuvântul cheie acest în interiorul funcției plugin se va referi la obiectul jQuery în sine.

    

Note: Prin adăugarea unui plugin la jQuery.fn obiect, în esență, spunem că pluginul nostru ar dori să utilizeze funcția jQuery pentru a selecta un context (elemente DOM). Dacă pluginul dvs. nu necesită un context specific (cu alte cuvinte, un set de elemente DOM) în care trebuie să funcționeze, este posibil să nu fie nevoie să atașați acest plugin la $ .fn. Ar putea fi mai logic să-l adăugați ca o funcție de utilitate în spațiul de nume jQuery.


În interiorul unui plugin, acest Este o referință la Obiectul jQuery curent

Când atașați un plugin la jQuery.fn obiect, cuvântul cheie acest folosită în interiorul funcției plugin atașată se va referi la obiectul jQuery curent.

    

Este esențial să groconezi exact ce înseamnă cuvântul cheie acest se referă la funcția pluginului.


Folosind fiecare () pentru a itera peste obiectul jQuery și a furniza o referință la fiecare element în obiect folosind acest cuvinte cheie

Utilizarea fiecare(), putem crea o iterație implicită pentru plugin-ul nostru. Aceasta înseamnă că, dacă setul de învelitori conține mai mult de un element, metoda pluginului nostru va fi aplicată fiecărui element din setul de învelitori.

Pentru a face acest lucru, vom folosi utilitarul jQuery fiecare() funcția, care este un iterator generic pentru ambele obiecte și matrice, practic simplificând looping-ul. În exemplul de cod de mai jos, folosim funcția pentru a itera peste obiectul jQuery. În interiorul funcției care este trecută fiecare(), cuvântul cheie acest se va referi la elementele din setul de wrapper jQuery.

    

Utilizarea fiecare() funcția este critică dacă doriți ca un plugin să utilizeze iterația implicită.


Plugin Returnează obiectul jQuery Deci, metodele jQuery sau alte pluginuri pot fi legate după utilizarea pluginului

În mod obișnuit, majoritatea pluginurilor returnează obiectul jQuery însuși, astfel încât pluginul să nu spargă lanțul. Cu alte cuvinte, dacă un plugin nu are nevoie în mod specific să returneze o valoare, ar trebui să continue lanțul, astfel încât să se poată aplica metode suplimentare setului de învelitori. În codul de mai jos, returăm obiectul jQuery cu returnați acest lucru; astfel încât legarea să nu fie întreruptă. Observați că sunt înlănțuit pe mamă() și adăuga() după ce am sunat numara() conecteaza.

    

Note: Este posibil ca plugin-ul să fie o metodă distructivă, pur și simplu, să nu returneze obiectul jQuery.


Opțiunile de plugin implicite

Pluginurile conțin în mod obișnuit opțiuni care vor acționa ca configurație implicită de bază pentru logica pluginurilor. Aceste opțiuni sunt utilizate atunci când plugin-ul este invocat. În codul de mai jos creez a defaultOptions obiect care conține o singură proprietate (startCount) și valoarea (0). Acest obiect este stocat pe funcția de numărare $ .fn.count.defaultOptions. Facem acest lucru astfel încât opțiunile să fie configurabile din afara pluginului.

    

Opțiuni personalizate pentru pluginuri

În mod obișnuit, opțiunile pluginului implicit pot fi suprascrise cu opțiuni personalizate. În codul de mai jos, trec în a customOptions Obiect ca parametru pentru funcția plugin. Acest obiect este combinat cu defaultOptions obiect pentru a crea un singur Opțiuni obiect. Utilizăm metoda utilitară jQuery extinde() pentru a combina mai multe obiecte într-un singur obiect. extinde() metoda oferă utilitatea perfectă pentru suprascrierea unui obiect cu proprietăți noi. Cu acest cod în loc, plugin-ul poate fi personalizat atunci când este invocat. În exemplu, trecem numara adăugați un număr personalizat (500) pentru a fi folosit ca punct de pornire pentru contor. Această opțiune personalizată înlocuiește opțiunea implicită (0).

    

Suprascrierea opțiunilor implicite fără a modifica codul original al pluginului

Deoarece opțiunile implicite sunt accesibile din afara unui plugin, este posibil să resetați opțiunile implicite înainte de a invoca pluginul. Acest lucru poate fi util atunci când doriți să definiți propriile opțiuni fără a modifica codul pluginului în sine. Acest lucru poate simplifica invocarea plugin-urilor pentru că puteți, într-un anumit sens, să configurați pluginul în funcție de preferințele dvs., fără a lovi codul original al plugin-ului.

    

Creați elemente de pe zbor, Invocați pluginurile programabil

În funcție de natura pluginului, poate fi esențial ca un plugin să fie apelat atât normal (prin elemente și evenimente DOM), cât și programat. Luați în considerare un plugin de dialog. Vor exista momente în care modalitatea / dialogul se va deschide pe baza evenimentelor utilizatorilor. În alte cazuri, trebuie să deschideți un dialog bazat pe evenimente legate de mediu sau de sistem. În aceste situații, puteți invoca plugin-ul dvs. fără elemente din DOM, creând un element în zbor pentru a invoca pluginul. În codul de mai jos, invoc dialog () plugin la încărcarea paginii creând mai întâi un element pentru a invoca pluginul meu.

    dialog, spuneți dialogul de bine, spuneți pa    

Evident, ar putea exista o mulțime de variații ale acestui model în funcție de opțiunile, complexitatea și funcționalitatea pluginului. Punctul aici este că pluginurile pot fi apelate prin intermediul elementelor DOM existente, precum și cele create în zbor.


Furnizarea de apeluri de răspuns și trecerea unui context

Atunci când creați pluginuri jQuery, este o idee bună să oferiți funcții de apel invers ca opțiune și să transmiteți aceste funcții contextul acest când apelul inversat este invocat. Aceasta oferă un vehicul pentru tratarea suplimentară a elementelor dintr-un set de învelitori. În codul de mai jos, trecem la o opțiune personalizată outAndInFade () plugin metoda care este o funcție și ar trebui să fie numit odată ce animația este completă. Funcția de apel inversă este trecută cu valoarea acest când este invocată. Acest lucru ne permite să folosim ulterior acest valoare în interiorul funcției pe care am definit-o. Când se invocă funcția de apel invers, cuvântul cheie se va referi la unul dintre elementele DOM conținute în setul de învelitori.

    
Afară și în decolorare
Afară și în decolorare
Cod