Autor | Zpráva | ||
---|---|---|---|
Kcko Profil |
Ahoj,
trošku specifická otázka. Našel jsem si nějaký jakože jQ pattern, který mi celkem vyhovuje. Demo: jsbin.com/pibejuk/edit?html,output Jsou tam 2 patterny, druhý funguje OK, u prvního nevím jak to upravit. Mám problém s tím, jak procpat např. do metody update parametry, tak aby se v inicializaci propsaly. Jedná se tedy o tento kód if (typeof option == 'string') { $plugin[option](); } else { $plugin.init(); } A je jasné, že to nemůže fungovat, ale neumím si s tím ted nějak elegantně poradit. Konstrukce typu mi prostě zlobí. $plugin[option].apply(this, Array.prototype.slice.call( arguments, 1 )); Nevěděl by někdo? (@Radek) |
||
Keeehi Profil |
#2 · Zasláno: 25. 4. 2018, 18:45:35
$plugin[option].apply(this, Array.prototype.slice.call( arguments, 1 )); this a arguments se pak týkají té funkce.
this - místo toho tam chceš mít $plugin , protože proměnná $plugin právě obsahu jen objekt, nad kterým to chceš volat
arguments - ještě před tím, než vlezeš to funkce si to uložíš do proměnné a tu si pak uvnitř načteš a použiješ
var data = arguments return this.each(function() { ... $plugin[option].apply($plugin, Array.prototype.slice.call( data, 1 )); ... Živá ukázka |
||
Kcko Profil |
Keeehi:
Na vystrčení arguments mimo funkci jsem přišel vzápětí a kontext jsem odhaloval delší dobu - asi hodinu (když jsem ještě objevoval jiné patterny).
Samozřejmě Ti děkuji za ochotu :-), už je mi to jasné, navíc jsem objevil konečně dobře napsaný plugin, kterého se chci držet (myslím Tím patternu) Jen pro zajímavost (github.com/wbotelhos/raty) A tento plugin vychází z toho co jsme ted řešili (github.com/wbotelhos/checkall), opět jen pro ukázku, kdyby to někdo řešil nebo to někoho zajímalo. 2 smysluplné patterny jak psát JQ plugin. |
||
Časová prodleva: 6 let
|
0