Autor | Zpráva | ||
---|---|---|---|
Hajaxa Profil * |
#1 · Zasláno: 16. 1. 2013, 19:05:13
Zdravím,
V rychlosti popíšu problém. Potřebuji aby v případě platnosti podmínky se podmínka provedla do funkce. V Jquery mám jednoduchou funkci: (function($, window, document, undefined) { var name = "jPages", instance = null, defaults = { PolozekNaStranku: 36, }; Vytvořil jsem si podmínku. Potřebuji následující: Pokud je aktuální stránka větší jak 1, změní PolozekNaStranku na hodnotu 60, if (this._aktulniPolozekNaStranku === 1 && page > 1) { } Najde se někdo zkušenější, kdo by věděl, jak s tím? Díky moc. |
||
_es Profil |
Hajaxa:
Píšeš nejako zmätene. Kde sa ten druhý kód nachádza, kedy je volaný? Nechápem, na čo sa pýtaš. Vlastnosť defaults.PolozekNaStranku môžeš predsa v tej funkcii zmeniť na ľubovolnú inú hodnotu.
|
||
preca1 Profil |
#3 · Zasláno: 17. 1. 2013, 11:03:02
Zdravim,
jestli sem to dobře pochopil: pokud je proměnná defaults viditelná if (this._aktulniPolozekNaStranku === 1 && page > 1) { defaults.PolozekNaStranku = 60; } |
||
Hajaxa Profil |
Bohužel to nefunguje, tak jak jsem chtěl. Fungujete jenom částečně. Nevěděl by někdo, jak s tím? Používám jPages (http://luis-almeida.github.com/jPages/)
updateBtns : function(nav, page) { if (this._currentPageNum > 2 ) { this.options.perPage = 60; } if (this._currentPageNum === 1 ) { this.options.perPage = 36; } if (page === 1) { nav.first.addClass("jp-disabled"); nav.previous.addClass("jp-disabled"); } if (page === this._numPages) { nav.next.addClass("jp-disabled"); nav.last.addClass("jp-disabled"); } if (this._currentPageNum === 1 && page > 1) { nav.first.removeClass("jp-disabled"); nav.previous.removeClass("jp-disabled"); } if (this._currentPageNum === this._numPages && page < this._numPages) { nav.next.removeClass("jp-disabled"); nav.last.removeClass("jp-disabled"); } }, |
||
_es Profil |
#5 · Zasláno: 17. 1. 2013, 17:33:10
|
||
Hajaxa Profil |
_es:
Potřebuji, aby od stránky větší jak 2 se zobrazilo cca 60 položek. Na první straně by bylo pouze 36. |
||
_es Profil |
#7 · Zasláno: 17. 1. 2013, 18:47:01
Hajaxa:
Skús pohľadať v dokumentácii tej knižnice: luis-almeida.github.com/jPages/documentation.html Asi tu nenájdeš nikoho, kto by ju kvôli tebe študoval. O čo sa pokúšaš metódami addClass a removeClass ? Ak očakávaš, že na to tá knižnica okamžite zareaguje, tak nie. Použi metódy tej knižnice.
|
||
Hajaxa Profil |
_es: Dokumentaci jsem prohledal již v samotném začátku, nemusíš mít obavy ;)
Nakonec jsem tam přidal několik podmínek, funguje to, funkčně to není na špatně, ale nemůžu tam najít jednu menší chybku. Popis chyb Na první straně se zobrazí 36 položek (to je dobře). Pokud přejdu na ostatní stránky, zobrazí se 60 položek (to je dobře). Pokud se například z druhé stránky vrátím na první zobrazí se 60 položek (zde je chyba, má se zobrazit 36 položek). ( (function($, window, document, undefined) { var name = "jPages", instance = null, defaults = { perPage: 36, } if (page === 1) { this.options.perPage = 60; $('div#foo').css('background', 'blue'); } if (page === this._numPages) { this.options.perPage = 60; $('div#foo').css('background', 'red'); } if (this._currentPageNum === 1 && page > 1) { this.options.perPage = 60; $('div#foo').css('background', 'green'); } if (this._currentPageNum = 1) { this.options.perPage = 36; $('div#foo').css('background', 'black'); } |
||
_es Profil |
#9 · Zasláno: 17. 1. 2013, 20:36:51
Hajaxa:
Zo zbežného pohľadu do dokumentácie tipujem, že ti asi treba použiť vlastnosť callback . Z nejakých vytrhnutých kusov kódu ti asi nikto neporadí.
|
||
Hajaxa Profil |
#10 · Zasláno: 17. 1. 2013, 20:53:24
_es: Nejsem si přesně jist, zda vlastnost callback bude řešením tohoto problému.
Chyba je někde přímo v podmínce, nemohu ji ale najít. Zkoušel jsem již toho opravdu hodně. Pokud někdo ví, jak tento problém řešit, budu jenom rád ;) |
||
joe Profil |
Pokud ti nevadí úpravy přímo v pluginu (což ai zřejmě ne, když už ukazuješ úpravy i tady v diskusi), pak ti nepomůže funkce
updateBtns , ale funkce paginate , updateItems nebo getItemRange , kterou můžeš upravit takto
Takže například toto by mělo splňovat to, co chceš: getItemRange : function(page) { var range = {}; if (page > 1) { this.options.perPage = 60; } else { this.options.perPage = 36; } range.start = (page - 1) * this.options.perPage; range.end = range.start + this.options.perPage; if (range.end > this._items.length) range.end = this._items.length; return range; }, |
||
Hajaxa Profil |
#12 · Zasláno: 17. 1. 2013, 21:49:47
joe: Díky moc, funguje to bezvadně.
Když se na to dívám zpětně, už ani nevím, proč jsem to dělal tak složitě, když to jde udělat pomocí jednoho zápisu. Ještě jednou velké díky! |
||
Časová prodleva: 11 let
|
0