2017-03-19 10 views
1

Ich habe mehrmals versucht, den Code zu ändern. Aber jedes Mal, wenn ich NaN bekomme ...jQuery Get Wert von Daten Attribut

$(window).load(function() { 
    $('.ytdl').click(function() { 
     var v = $(this).data('href'); 
     var f = $(this).data('format'); 

     alert(v + f); 

    }); 
}); 


<a data-href="KMU0tzLwhbE" data-format="1" rel="nofollow" target="_blank" class="ytdl">Download</a> 

Aber warum? Ich habe versucht, auch schon Daten in attr zu ändern. Aber nichts davon funktioniert.

+0

Dies genau funktioniert wie geplant - in einen Code-Schnipsel laden und es versuchen - es muss etwas anderes sein geht woanders –

Antwort

2

Ändern Sie einfach die load zu ready

Die .ready() Methode bietet eine Möglichkeit, JavaScript-Code, sobald die Seite des Document Object Model (DOM) wird sicher zu manipulieren, zu laufen. Dies ist oft ein guter Zeitpunkt, um Aufgaben auszuführen, die benötigt werden, bevor der Benutzer die Seite anzeigt oder interagiert, beispielsweise um Ereignishandler hinzuzufügen und Plugins zu initialisieren. Wenn mehrere Funktionen über aufeinanderfolgende Aufrufe dieser Methode hinzugefügt werden, werden sie ausgeführt, wenn das DOM in der Reihenfolge bereit ist, in der sie hinzugefügt werden. Ab jQuery 3.0 stellt jQuery sicher, dass eine Ausnahme, die in einem Handler auftritt, nicht verhindert, dass nachträglich hinzugefügte Handler ausgeführt werden. - https://api.jquery.com/ready/

Also hier ist eine Arbeits Demo https://jsfiddle.net/e89gh5Lk/

  • document.ready ein jQuery-Ereignis wird, läuft es, wenn das DOM bereit ist, z.B. Alle Elemente sind dort zu finden/zu verwenden, aber nicht notwendigerweise alle Inhalte.
  • window.onload wird später (oder gleichzeitig in den schlimmsten/fehlgeschlagenen Fällen) ausgelöst, wenn Bilder und solche geladen werden. Wenn Sie beispielsweise Bilddimensionen verwenden, möchten Sie diese häufig verwenden.
+1

Danke, das das Problem gelöst:) Einfach, aber funktioniert haha ​​ –

+0

@LenaLuther markieren Sie es bitte als eine richtige Antwort, indem Sie auf den Scheck klicken :) – dyaa

+0

@ dyaa Das ist der Grund, warum ich keine Mühe gebe, Antworten auf Leute mit 1 Repräsentant zu geben. – Chris