Sziasztok.
Adott egy jquery scriptem, ami a checkboxok sminkelését segíti. Direkt elég általánosra leett megírva, hogy mindenhol működjön úgy ahogy kell. Működik is, kivéve az modulok és a jogosultságok admin felületén nem. Ott a headerben, de hiába kattingatok a checkboxokra nem csinál semmit. Már ilyen nagyon alap $('td').addClass('fooo')-kon is túl vagyok, amik szintén nem működtek ezeken a path-okon. Ez hogy lehet? Találkozott már valaki ilyennel? Esetleg megoldás rá?
Script: http://pastebin.com/gXwyy6Ji
Köszönöm
Fórum:
több info, konkrét példa
Egy példát feltehettél volna feltehetnél jsFiddle-re HTML-kódrészlettel együtt, ahol ez nem működik, ott sokkal könnyebb egyből meglátni a hibákat, főleg, ha nyomogatod a "JSLint" gombot a kódod beszúrása után. :) Pl. egyből szól, hogy lemaradt egy pontosvessző a kódod legvégéről. De ez még a kisebbik hiba. Azt pl. nem jelzi, hogy szintaktikailag hibás ez:
$('input.[type="checkbox"]')
Felesleges a kifejezésben a pont.
Helyesen:
$('input[type="checkbox"]')
Utána eggyel már jól is írtad, de akkor nem értem, miért választottad szét a kettőt.
Ezentúl a
<label>
-ben lévő szövegeket nem tudom, miért cseréled le teljesen JavaScripttel, remélem csak tesztcélból. :)Hogy a többire érdemben reagáljunk, tudni kéne, hogy milyen sminket használsz, a Drupal hányas verzióját, stb.
Pl. Overlay-en (azon a kis felpattanó, a hátteret elhomályosító vászonszerűségen) jelenik meg az admin-felület, ahogy a Drupal 7-nél defaultból van?
Esetleg egy screenshot is jól jöhet, minél jobban tisztában vagyunk a körülményekkel, annál egyszerűbb lehet válaszolni.
Igen ott az a sor hibás, én
Igen ott az a sor hibás, én sem tudom már hogy sikerült azt úgy írnom/hagynom, valószínűleg ott az első verzióban egy class volt. Kijavítottam de ahogy sejtettem nem javított a dolgokon.
HTML kódot nem igazán szeretnék prezentálni erről az oldalról, azért tettem közzé a lényeget a jQuery scriptet. Abban igazad van, hogy pár infót kihagytam a leírásból:
Screenshot: http://s11.postimage.org/7mu584poz/screenshot.png bár nem tudom ez mennyit segít. A kód érintett része meg bármikor megnézhető Drupalon belül.
jsFiddle-en lefuttattam, itt a javított kód kimenete: http://pastebin.com/SEfDVrfd
Egyedül az utolsó sorban szeretett volna egy pontos vesszőt a (jQuery) után, kerestem hátha máshol hagytam le előtte, nem láttam ilyet; megadtam neki és valid lett a kód.
Kipróbáltam, jó
Na, most végre volt egy kis időm játszani ezzel.
Direkt a nálad problémás
admin/people/permissions
útvonalon lévő checkboxokat próbáltam ki, és nálam egy modulból hozzáadva teljesen az elvártak szerint működik a kódod.Ha jól értem, annyi a célod, hogy az input elemre is kerüljön egy
checked
osztály, meg a közvetlen szülőelemére is, amennyiben checkboxról van szó, és bepipálod az elemet.Screenshot:
PIPÁLÁS ELŐTT:
PIPÁLÁS UTÁN:
Bekereteztem és aláhúztam a lényeget.
Nálam úgy van, hogy a modulom
.info
fájljában van ez a sor:scripts[] = js/testModule.behaviors.js
az előbb hivatkozott JS-fájlban meg tök ugyanaz van.
Most belekontárkodtam a Seven core theme-be is, amit ugyan elvileg nem szabad, de most nem volt kedvem emiatt subtheme-et létrehozni, mivel ez egy szemetelős Drupal, és ott is teljesen ugyanígy, elvileg jól működik, ahogy kéne neki.
Nálad akkor mi is van?
Bepipálod, de nem kerül rá a
checked
osztály? Tehát nem úgy működik, ahogy én mutattam a screenshoton?Köszönöm, hogy szántál rá időt
Teljes mértékben elmondhatom, hogy fogalmam sincs miért nem működik...
Beraktam modulba, ahogy írtad, működik, szuper. Bügyköltem kicsit Zen subtheme-n... továbbra sem működik...
OK, nincs mit veszteni, én is beleraktam Sevenbe, ott sem működik. Így raktam be mindenhova:
scripts[] = js/checkbox.js
Szóval marad a modulos megoldás, ami nem is akkora baj, csak hát inkább a smink rétegben lenne ennek a helye. Erőseb epic facepalm ez probléma.
Köszönöm mégegyszer!
cache-törlés megvolt?
Szívesen, örülök, hogy így legalább működik!
Még annyi, hogy cache-törlés megvolt, miután sminkbe beraktad?
Mondjuk feltételezem, igen, mert ha jól emlékszem, azt írtad, hogy látszik is a source-ban, hogy include-olva van a JS-fájl... akkor viszont furcsa, hogy nem működik nálad theme-ből.
Konzolra sem kaptál semmi hibát?
Bevallom engem is idegesített
Bevallom engem is idegesített, hogy mi van... igen megvolt minden, mégsem működött.
Azonban ez egy elég nagy project, már követni se lehet a saját modulok számát, stb. És úgy néz ki az a helyzet, hogy csak ebben a környezetben nem működik ez a script. Hogy ezt hogy hoztuk össze... fogalmam sincs, ennyi modul közt nem hiszem, hogy erre megéri erőforrást fordítanunk egyenlőre. (Főleg, hogy a modulos megoldás működik.)
Erre is úgy jöttem rá, hogy mérgemben én is felhúztam magamnak egy alap drupal playgroundot... beraktam Sevenbe a scriptet, és tádá It's working!
Szóval ez a helyzet... nem kis idő volt rájönni :) Köszönet mégegyszer.