Jquery script nem működik adott admin path-on

mxr576 képe

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: 
Sk8erPeter képe

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.

0
0
mxr576 képe

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:

  • Zen 7.x.5.x alsmink (de az előző 7.x.3.x sminken se működött, mint később utóteszteltem)
  • Overlay kikapcsolva

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.

0
0
Sk8erPeter képe

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:
checkbox tick előtt

PIPÁLÁS UTÁN:
checkbox tick 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?

1
0
mxr576 képe

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!

0
0
Sk8erPeter képe

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?

0
0
mxr576 képe

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.

0
0