jQuery hiba?

Sziasztok!



A képességeimet meghaladó hibát kezdtem észlelni az oldalamon. Wordpress 3.3.1 verzió és Arras 1.5.0.1 fut rajta. Január 8-ig minden tulajdonképpen tökéletesen működött. Azóta fokozatosan kezdek elveszíteni több fontos funkciót. Először az Auto Thickbox állt le, majd a legördülő menü, végül tegnap a főoldali slider. Ezek miatt jQuery hibára tippelek, de fogalmam sincs, hogyan lehetne kiküszöbölni.



A Chrome JavaScript console kiad egy hibát, de nem lettem tőle okosabb.



Bármilyen segítségért, ötletért hálás lennék.



Az oldal címe http://idokjelei.hu/

Próbáld meg idemásolni a hibaüzenetet, hátha valaki okosabb lesz tőle. :smiley:

Oké.



A Chrome ezt írja: Uncaught TypeError: Cannot read property ‘msie’ of undefined



A Firefox pedig ezt: TypeError: a.browser is undefined



Az érintett sor a superfish.js f’ájlban pedig ez lenne:



if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);



Közben azért én is nyomoztam és látom, hogy nem vagyok egyedül a problémával.



Eddig ez a legtöbb, amit találtam, csak sajnos nem tudok mit kezdeni az információval:



http://www.studiopress.com/forums/topic/superfish-broken-with-jquery-1-9/



Látom, hogy az én oldalamon is a superfish.js fájllal van baja böngészőknek, de nem tudom, hogyan tudnám kijavítani. Azóta megpróbáltam downgrade-elni azokat a bővítményeket, amiket a hiba jelentkezése körüli időben frissítettem, de nem segített.

De hiszen ott van a linken a megoldás. :slight_smile:



Ha még nincs, létrehozol a sablonodon belül egy js mappát és beleteszed ezt a filet (ha van js mappád, akkor már létrehozni sem kell): http://code.jquery.com/jquery-migrate-1.0.0.min.js



Ezután megnyitod a sablonod functions.php-ját és belemásolod ezt:

<br />
add_action('wp_enqueue_scripts', 'bugfix_add_jquery_migrate');<br />
function bugfix_add_jquery_migrate() {<br />
if (!is_admin()) {<br />
wp_register_script( 'jquery-migrate', get_stylesheet_directory_uri() . '/js/jquery-migrate-1.0.0.min.js',array('jquery'));<br />
wp_enqueue_script( 'jquery-migrate');<br />
}<br />
}

És ez szerinted minden sablonra jó megoldás?



Még soha nem csináltam ilyesmit…

Ez nagyjából sablonfüggetlen, egyszerűen a js konfliktust oldja fel.

Sajnos nem működött. A módosított functions.php-val szerver hibát jelzett a böngésző. :frowning:

Tudod csatolni a functions.php-dat?

Persze, örömmel. :slight_smile:



Köszönöm a fáradtságot.

Nem enged php-t csatolni. Itt a dropbox link: http://dl.dropbox.com/u/50823763/functions.php

Hová másoltad be? Mármint a file-on belül. :slight_smile:

A végére.



Az /* End of file functions.php */ elé.

Megpróbálod az elejére? Közvetlenül a <?php utáni sorba.

Ugyanaz :frowning:

Van még egy dolog, amit nem értek. A teszt oldalamon (ami a fent megadott eredeti klónja nagyjából) minden hiba nélkül működik a slider és a menü is és nincs hibaüzenet egyik konzolban sem. Ugyanazok a bővítmények futnak rajta, csak azon már Wordpress 3.4.2 van, ami mindegy, mert mások wordpress 3.5-tel is ugyanezt a hibát jelentették.

Hm. A tesztkörnyezet localhoston van (valamilyen)ampp-on, vagy az is online?

online, egy aldomain, tehát a hosting és minden beállítás azonos.



Ami más, hogy ott nincs Adsense, viszont az ‘éles’ oldalamon már régóta van és eddig nem volt gond.



Próbáltam már azt is, hogy kikapcsolok minden bővítményt, ami jQuery-t használhat, de nem segített.

És próbáltad frissíteni az igazi oldalt is 3.4.2-re?

Még nem. Tervezem, csak az egy éjszakai projekt és még nem volt alkalmam.

Akkor első lépésben várjuk meg, amíg lesz alkalmad. Hátha, legalábbis a tesztkörnyezet bíztató. :slight_smile:



Egyébként a javasript része a WP core-nak, úgyhogy más WP-verzió jelenthet más JS-verziót.



Eddig hátha jön erre valami JS expert és megmondja a frankót. :slight_smile: