Autor Zpráva
Peet
Profil
Dobrý den, jak mohu ošetřit toto:

$("input#date").click(function(){
//Zde chci použít podmínku pokud, ale ještě datepicker nepoužívá
$(this).datepicker();
});

jak se to dá zjistit ?
_Leopik 2x
Profil *
Najskôr asi tak, že ten plugin bude mať už nejakú takú funkciu zabudovanú (teda niečo ako $(this).hasDatepicker()), alebo, ak nie, tak možeš pridať triedu po prvom kliknutí a potom to kontrolovať

$("input#date").click(function () {
    if (!$(this).hasClass("uz-mam"))
        $(this).addClass("uz-mam").datepicker();
});
Chamurappi
Profil
Reaguji na Peeta:
Pojem plugin je v tomto kontextu poněkud rozmazaná škatulka, do které se hází prakticky libovolný skript (který obvykle sám o sobě je výkonnou složkou, nikoliv doplňkem jiného programu, takže říkat tomu „plugin“ je nesmysl).

jak se to dá zjistit ?
Nastudovat si dokumentaci k tomu pluginu a zjistit z ní, zda podobnou funkčnost nabízí.


Reaguji na _Leopika 2x:
Brr, zneužívat class jako skladiště informací… no fuj.
_es
Profil
Peet:
jak se to dá zjistit ?
Možno z dokumentácie k tomu „datepickeru“.
Asi to máš celkovo nejako zle naprogramované. To, či sa to používa alebo nepoužíva, si predsa nastavil ty sám vo svojom kóde, takže je trochu divné to kontrolovať sám po sebe.
_Leopik 2x
Profil *
Chamurappi:
Brr, zneužívat class jako skladiště informací… no fuj.
Súhlasím, preto som aj poznamenal, aby najskôr skontroloval, či daný plugin nemá už podobnú funkciu. Čo ak ale daný plugin neponúka podobnú funkciu (povedzme, že "použiť lepší plugin" nie je možnosťou :-))?
_es
Profil
_Leopik 2x [#5]:
Ako „skladište informácií“ predsa nemusí slúžiť trieda pre CSS. Stačí v tvojom kóde použiť this["uz-mam"], alebo „v štýle HTML5“ this["data-uz-mam"].
_Leopik 2x
Profil *
Pravda, s tým data- to znie lepšie.
Chamurappi
Profil
Reaguji na _es:
alebo ‚v štýle HTML5‘
V návrhu HTML 5 se mluví o data-atributech, ne o data-vlastnostech. Smyšlené vlastnosti si jde lepit na JS objekty odjakživa, nikdy to ničím nebylo zakázaná a žádná konvence pro ně neexistuje, takže tady prefix "data-" nemá příliš smysl.
Vlastní data-atributy z HTML mají být do DOMu namapované přes element.dataset, což není příliš podporované.


Reaguji na _Leopika 2x:
Čo ak ale daný plugin neponúka podobnú funkciu
Možností je mnoho. Kdyby tu vlastnost nechtěl lepit na objekt, mohl by si třeba spravovat pole objektů a pak kontrolovat, zda se v něm nachází element, na kterém to chce zavolat…
Cokoliv je lepšího než měnit HTML atribut.
_es
Profil
Chamurappi:
myšlené vlastnosti si jde lepit na JS objekty odjakživa, nikdy to ničím nebylo zakázaná a žádná konvence pro ně neexistuje, takže tady prefix "data-" nemá příliš smysl.
Má to asi zmysel pre teoretickú kolíziu s existujúcimi vlastnosťami elementov - čomu zabráni prefix na to určený. Napríklad: Priradenie do vlastnosti "data-type" ako „skladišťa informácií“ bude fungovať bez problémov, no s vlastnosťou "type" to pre niektoré elementy použiť nepôjde.
Chamurappi
Profil
Reaguji na _es:
To ano, ale v takovém případě bych prefixoval něčím specifičtějším, než banálním slovem data, protože teoreticky bych mohl kolidovat i s něčím jiným, co mělo stejný nápad.
Ona kolize hrozí vlastně i u těch data-atributů, prefix u nich zajišťuje jen to, že se nebude kolidovat s ničím nativním, ale pořád ve stránce může běžet hodně dalších podivností podobně cizích, jako jsou nativní části DOMu.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: