2017-10-30 1 views
3

Ich lerne jQuery aus dem Jon Duckett Buch "Javascript & jQuery: Interaktive Front-End-Entwicklung". Bis jetzt scheint der ganze Code, den ich aus dem Buch kopiert habe, reibungslos zu laufen, aber dieser Code hat mich verblüfft. Wenn Sie auf ein Listenelement im HTML-Code klicken, wird das Datum angezeigt, an dem das Klickereignis neben dem Li aufgetreten ist. Es funktioniert, aber das Datum wird am 31. Dezember 1969 anstelle des angeklickten Datums angezeigt. Ich habe gelesen, wie ich das beheben kann, aber ich hatte kein Glück. Gibt es einen anderen Weg, um dasselbe Ergebnis zu erhalten, oder fehle ich gerade etwas im Code?jQuery Date() Funktion gibt 31. Dezember 1969 anstelle des aktuellen Datums

Das Snippet jQuery und jsfiddle Link unten sind: jsFiddle

$(function(){ 
    $('li').on('click', function(e){ 
    $('li span').remove(); 
    var date = new Date(); 
    date.setTime(e.timeStamp); 
    var clicked = date.toDateString(); 
    $(this).append('<span class="date">' + clicked + ' ' + e.type + '</span>'); 
    }); 
}); 

Antwort

7

Das weil e.timeStamp kehrt ist DOMHighResTimeStamp und nicht DOMTimeStamp. Was ist sehr weniger. Aufgrund dessen legt es das Datum als Standard auf 31.12.1969 fest.

new Date(), erstellt ein neues Datumsobjekt mit dem aktuellen Datum und Uhrzeit. Sie brauchen hier nicht explizit Settime:

var date = new Date(); 
var clicked = date.toDateString(); 
+0

Ah, perfekt! Ich habe alles versucht, außer dass ich diese Codezeile entfernt habe. Vielen Dank! – photogcoder

+1

das ist unwahrscheinlich, dass - siehe die Referenz http://api.jquery.com/event.timeStamp/ jQuery Ereignis hat die 'timeStamp' -Eigenschaft. – Roomy

+1

@Roomy: Danke, geräumig. aktualisierte die Antwort. –

1

Entfernen Sie die Zeile date.setTime(e.timeStamp); und die Dinge funktionieren richtig:

$(function(){ 
    $('li').on('click', function(e){ 
     $('li span').remove(); 
     var date = new Date(); 
     var clicked = date.toDateString(); 
     $(this).append('<span class="date">' + clicked + ' ' + e.type + '</span>'); 
    });   
}); 
Verwandte Themen