![]() |
Javascript krockar
Jag har 2 st java script koder en av de ska ändra utseendet på mina checkbox (jQuery custom checkboxes) och den andra ska va typ en räknare för priser.
jag är inte så grym på javascript och jag kan inte fatta vf de inte funkar med varandra. Här är pris räknaren: Kod:
<script type="text/javascript"> |
Vad säger javascript-konsolen?
|
Jag har svårt att tro att det krockar. däremot kan du ha fel i din javascript (någonstans) som gör att all js-funktionalitet inte laddar. Därför ska man köra med try-catch samt loggning under utvecklingstiden.
|
alltså firebug säger inget fel..
men om jag lägger räknaren först så funkar inte checkbox jquery och tvärtom.. |
Kan det vara raden där du skriver över allt som lagts i onload-händelsen?
Kod:
window.onload = uncheckall; Kod:
$(document).ready(uncheckall); |
nej testat utan uncheckall funktionen och det funkar ändå inte...
|
Lite svårt utan att se hela sidan och kunna debugga själv.
Min gissning är att en variabel inte är deklarerad, eller att den inte hittar ett ID på sidan. |
men grejen är att både 2 funkar perfekt när de ladas själva men tsm så funkar det inte..
|
kan det ha med att jquery pluginen byter id på tillvalsknapparna så när du försöker kolla vilken som är ibockad att det går sönder där?
Kan du visa sidan? |
Ja! det va det fick använda en annan jquery plugin i slut ändan men tack för hjälpen
|
Hej, skönt att allt löste sig.
Några saker jag tänkte på bara som inte helt kommit fram i kommentarerna (det mesta vet du säkert redan) Själv använder jag web developer toolbar i FireFox för att debugga min JavaScript. Rekommenderar den skarpt. En sak du bör ha som vana när du skriver JavaScript, precis som all annan kod, för att undvika krockar etc (som du trodde var det ursprungliga felet) är att använda dig av namespaces/classer och object. En tredje sak jag tänkte på och här får någon annan gärna bekräfta eller dementera mina uppgifter då jag absolut inte alls är säker. Det är att det finns vissa risker med att använda window.onload Det är visserligen en lösning som jag gillar med den även kan lägga init-triggern i de externa JavaScript filerna. Men om jag nu minns rätt (och här får någon annan som sagt gärna också säga sitt) så väntar wondow.onload med att triggas tills allt på sidan har laddats in, alltså även bilder etc. Det betyder att har du en tung bild som ska laddas eller om användaren sitter på en seg uppkoppling kan det ta flera sekunder innan din init funktion kör igång. Oftast räcker det med att dom:en har laddat för att dina javascript ska fungera. Då kan du med fördel starta din init funktion i slutet av html-koden. Vet att alla där ute inte håller med mig om att detta är den ultimata lösningen. Det är i alla fall så jag oftast brukar göra. |
Citat:
|
Citat:
Men det är möjligt att det kan uppstå problem i något scenario där js-filerna inte hunnit laddas in eller. Jag har dock aldrig stött på detta problem och det är enkelt avhjälpt med en try/catch samt en onload backup trigger (om problemet skulle uppstå). Däremot har jag stött på problem med att onload tagit för lång tid på sig att triggas, exempelvis om en bild laddas från en extern sida som inte längre finns och användaren klickar på en knapp som ska trigga något JavaScript. |
Citat:
|
Citat:
|
Citat:
|
Citat:
|
Citat:
|
Citat:
|
Citat:
Men om man gärna vill återuppfinna hjulet med detta, liksom mycket annat, och göra det manuellt får man: För IE lägga en conditional statement som kör document.write av en script-tagg, och sen kolla readystate på scriptet. För Safari lägga en timer som kollar document.readyState |
SimonP & dAEk
Hahaha ja det är hemskt vad folk är sega på att uppgradera sina webbläsare Det är galet att 9.7% av världens surfare fortfarande sitter på ie6 (källa: http://www.ie6countdown.com/) Riktar man sig dock bara mot svenska och nordiska marknaden kan man äntligen skippa stöd för denna Lucifer skapelse, men riktar man sig mot asien och kina så är det bara att slita av sig håret i frustration. ie6 fyller för övrigt 10 år i morgon (27 augusti) man kanske skulle anordna ett litet kalas Clarence Nja håller inte helt med. Färdiga bibliotek kan vara bra ibland, men det är onödigt att koppla på ett tungt bibliotek om det bara är en liten funktionalitet man behöver. Sen är det stor kvalitetsskillnad på olika bibliotek och det är inte alltid de är välkodade, samt finns det buggar i biblioteket kan de vara svåra att lösa. JavaScript är lite undantaget, eftersom du har tillgång till all kod där och faktiskt kan gå in och fixa buggarna själv. Men har ett antal gånger råkat ut för slutna .net och actionscript bibliotek som haft buggar i sig och du därför måste skapat en workaround för att minimera problemet. Det var fortfarande rätt beslut att använda de biblioteken eftersom de sparade mycket utvecklingstid. Min poäng är bara att ett stort bibliotek inte alltid är bästa lösningen och därför kan det vara klokt att diskutera fram en bra lösning på onload-problemet samt att bara för att ett bibliotek är känt eller kostar pengar betyder inte det att det inte har buggar eller andra problem. |
Alla tider är GMT +2. Klockan är nu 14:01. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson