Există vreo modalitate de a verifica dacă un anumit plugin este disponibil?
Imaginați-vă că sunteți în curs de dezvoltare un plugin care depinde de un alt plugin a fi încărcate.
De exemplu vreau jQuery Validare plugin pentru a utiliza dateJS bibliotecă pentru a verifica dacă o anumită dată este validă. Ce ar fi cel mai bun mod de a detecta, în jQuery Valdation plugin dacă dateJS a fost disponibil?
În general vorbind, jQuery plugin-uri sunt spații de nume pe jQuery domeniul de aplicare. Ai putea rula un simplu verificați pentru a vedea dacă namespace există:
if(jQuery().pluginName) {
//run plugin dependent code
}
dateJs cu toate acestea nu este un plugin jQuery. Se modifică/se extinde javascript data de obiect, și nu este adăugat ca un jQuery nume. Ai putea verifica dacă metoda există necesitatea, de exemplu:
if(Date.today) {
//Use the dateJS today() method
}
Dar s-ar putea rula în probleme în cazul în care API-ul se suprapune nativ Data API.
Dacă ne-am're vorbesc despre o buna plugin jQuery (una care extinde fn nume), apoi modul corect de a detecta plugin ar fi:
if(typeof $.fn.pluginname !== 'undefined') { ... }
Sau pentru fiecare plugin este destul de mult garantat de a avea o anumită valoare, care echivaleaza cu adevărat, puteți folosi mai scurt
if ($.fn.pluginname) { ... }
BTW, $ și jQuery sunt interschimbabile, ca aspect ciudat înveliș în jurul valorii de un plugin demonstrează:
(function($) {
//
})(jQuery))
închiderea
(function($) {
//
})
este urmat imediat de un apel la închidere 'trece' jQuery ca parametru
(jQuery)
care $ in de închidere este egală cu jQuery
Mi-ar recomanda cu tărie că te-pachet DateJS bibliotecă cu plugin-ul dvs. și să documenteze faptul că te'am făcut-o. Nimic nu este mai frustrant decât să vâneze dependențe.
Asta a spus, din motive juridice, nu poate fi întotdeauna în măsură să bundle totul. De asemenea, nu strică să fii precaut și să verifice existența plugin-ul folosind Eran Galperin's a răspunde.