Avatar billede shjorth Nybegynder
19. november 2010 - 16:43 Der er 8 kommentarer og
1 løsning

div opstår spontant på siden

Hejsa.

Jeg har et lidt besynderligt problem.
Jeg har en side som bruger AJAX, og det virker alt som det skal. Men hvis man f.eks trykker rundt 20 gange, opstår der pludselig en div i øverste højre hjørne, med border på. Den div er i vejen for at man kan trykke på links, selvom den er gennemsigtig.

Problemet er at jeg på ingen måde kan troubleshoote i det da kildekoden er den samme.
Er der nogen der kender til et lign problem, eller måske hvordan f***** man troubleshooter i det ?

Takker
Avatar billede bkp Nybegynder
19. november 2010 - 18:34 #1
Du kan nemt debugge dig igennem ved at bruge firefox, og her installere firebug.

Se mere her:
http://getfirebug.com/javascript
http://getfirebug.com/errors
http://getfirebug.com/html
Avatar billede shjorth Nybegynder
19. november 2010 - 19:49 #2
Herligt, det var lige hvad jeg skulle bruge.

Fandt frem til hvad der skabte problemet, googlede det og fandt andre med samme problem, men dog ingen løsning.

Til dem der skulle læse det her handler det om flg:
FB.CanvasClient.startTimerToSizeToContent();

(facebook applikationer baseret på iFrame)

Men til bkp, takker jeg mange mange gange, og du må have en rigtig god weekend. Så mangler jeg bare lige et svar .)
Avatar billede bkp Nybegynder
19. november 2010 - 21:35 #3
Godt du fandt problemet :-)

Ja Firebug kan man ikke undværre ...
Avatar billede Slettet bruger
19. november 2010 - 22:34 #4
Hov, bkp - "mr. jQuery"

Firebug er genial - til debuggnig af HTML og "rigtig" javascript.
- men til jQuery (som jeg tog hul på IDAG!) er den ikke meget bevendt : (

Alle de "events" osv. som man får (nærmest) foræret, kan man (jeg) ikke se..
- hvad gør en klog ?
Avatar billede bkp Nybegynder
19. november 2010 - 23:36 #5
@T4NK3R
Kan du give et eksempel, for jeg er slet ikke enig ;-)

Hvis du f.eks. har en event som denne:
$('#myId').click(function() {
  // do something
});


Så sætter du et brakepoint inde i funktionen, så vil den stoppe når der klikkes, men hvis du sætter brakepoint hvor eventen dannes, vil du kun se når eventen oprettes og ikke når den kører.

Desuden skal du huske at eventen først oprettes når dit objekt med id = 'myId' er oprettet.

Dette kan du sikre dig ved at pakke det ind i en $(document).ready:
$(document).ready(function() {
  $('#myId').click(function() {
      // do something
  })
});


Håber det giver mening ;-)
Avatar billede Slettet bruger
20. november 2010 - 01:34 #6
Det jeg mener er, at når en side kører, men noget ser mærkeligt ud, plejer jeg at kunne højreklikke og bruge "inspect element" og få "alt" at vide.
Men når elementet er har fået tilknyttet en ny event (i $(document).ready() eller senere) så er denne event ikke synlig i Firebug.

I modsætning til en .addClass("klasse") f.eks.
- den nye/ekstra class ER der (i HTML'en) - en ny event ikke. Mystisk..
Avatar billede bkp Nybegynder
20. november 2010 - 08:15 #7
Jeg troede du mente du ville debugge dit script, men jeg kan forstå at du kun vil se den dannede html?

Kan du forklare lidt mere hvad det er du vil tjekke, så kan jeg måske give et tip.
Avatar billede Slettet bruger
20. november 2010 - 12:17 #8
Jeg har ikke et specifikt problem, lige nu. Det er mere generelt:
- når et element burde "gøre noget" når man klikker på det, men der ingenting sker..
Så ville det være rart at kunne se, om det skyldes at eventen helt mangler, eller at det er i event-koden problemet findes (uden at skulle ind og bøvle med breakpoints eller alerts)
Avatar billede shjorth Nybegynder
06. februar 2011 - 14:55 #9
Takker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester