Code von in Firebug protokollierten Javascript-Events

B

Benutzer007

Hallo,

jetzt gerade bin ich fast verrückt geworden. Ein Script, das teilweise nicht oder nicht wie erwartet ausgeführt wurde, wenn die Seite normal geladen wurde, wohl aber, wenn ich denselben Code noch einmal in Firebug ausgeführt habe.

Zuerst dachte ich, dass es mit dem Ready-Status zu tun hat, und habe deshalb $(document).ready... eingebaut. Aber das war es auch nicht.

Dann fiel mir, dass ich für die Kandidaten, um die es ging, vor geraumer Zeit bereits ein anderes Script mit anderen mouseover-Events geschrieben hatte. Offenbar kamen sich nun beide Scripts in die Quere.

Frage: wie kann man sich in Firebug den Code der Events anzeigen lassen? Man kann die Ereignisse ja protokollieren, aber ich weiß nicht, wie man an den Code herankommt, der sich hinter protokollierten Events verbirgt.

Grüße
Peter


PS: Ich sehe gerade, dass der Fehler immer noch auftritt. Es scheint ein jQuery-Problem zu sein. Viele Links werden nicht erkannt, obwohl ich nicht .live() sondern .on('mouseouver') verwende und die Prozedur mit setTimeout ein paar Mal aufrufe, das letzte Mal nach 2 Minuten.

In Chrome scheint es komischerweise zu klappen.

Es verdichtet sich der Verdacht, dass $().attr eine Macke hat, $().prop klappt im Moment.
 
Zuletzt bearbeitet von einem Moderator:
Ist eine Macke von $().attr, vielleicht in Verbindung mit FF.
Mit $().prop wird der Link jedenfalls korrekt (in Firefox intern) geändert, es wird aber unten als window hint die alte URL angezeigt.
Firebug zeigt die URL richtig an nach der Manipulation, und der Link wird auch genommen, wenn man einen neuen Tab aufmacht.
Ich weiß, dass ich im letzten Jahr oder so ein Problem hatte, dass ähnlich war. War wahrscheinlich genau diese Sache.
Ich habe gerade ein Firefox-Feedback gesendet. Vielleicht liest es einer.
Falls es Dich interessiert, hier der Link. Du musst oben rechts die Checkbox betätigen, damit die Trigger ziehen.
Stelle im Code ganz am Ende bei "Links in der Mobil-Version oder normal"
 
Zuletzt bearbeitet von einem Moderator:
Du läufst gerade einem üblichen Denkfehler auf: Attributs != Properties. Properties sind jene Eigenschaften, die die Objekt-Repräsentation eines Elements in JavaScript hat. Diese sind vorbelegt mit den Werten, die die Eigenschaften eines Elementes haben. Wenn Du die Properties änderst, änderst Du jedoch nicht das Element an sich, sondern nur seine Repräsentation. Wenn Du jetzt die Eigenschaften des Elementes verändern willst, musst Du die Attribute ändern.
 
Zuletzt bearbeitet:
Ich denke, prop() ist in diesem Fall richtig, zumal etliche Links in Divs z. B. die von addThis, erst sehr spät asynchron geladen werden.

Since attr() gives you the value of an element as it was defined in the HTML on page load. It is always recommended to use prop() to get the values of elements modified via JavaScript/jQuery in the browser at rumtime. It always keeps the current state value.
http://www.c-sharpcorner.com/UploadFile/97fc7a/difference-between-prop-and-attr-in-jquery/
 

Neue Beiträge

Zurück