Vinnaren i pepparkakshustävlingen!
2017-01-19, 11:53
  #1
Medlem
wallchars avatar
Jag håller på att bygga en lista. Allting fungerar som det ska nu (tror jag). men jag behöver få scriptet att uppdatera sig själv. Jag har sökt, men jag lyckas inte fixa det. Kan någon hjälpa mig?

Tack på förhand!

HTML-kod:
$('.bokning').each(function(){
		var now = new Date;
		var hour = now.getHours();
		var minute = now.getMinutes();
		if(hour < 10){ hour = 0 + '' + hour; }
		if(minute < 10){ minute = 0 + '' + minute; }
		
		var currentTime = hour + '' + minute;
		var val = $(this).text().substr(0, 5).replace(':', '');
		
		if(minute >= 40){ var diff = hour + 1 + '' + 10 }
		else if(minute < 10){ var diff = hour + '' + 10}
		else{ var diff = hour + '' + 40; }
		
			if(val < currentTime){
				$(this).css({'background':'#c9c9c9'});	
			}
			
			if(val >= currentTime && val <= diff){
				$(this).css({'background':'#ff6600'})
			};
		
		
	});
Citera
2017-01-19, 19:20
  #2
Medlem
CD-skivas avatar
Släng in en setInterval runt allt bara så ska det fungera.
Tänk på att inte göra mycket onödigt arbete varje varv. T.ex. att skapa nytt datum-objekt för varje varv, varje bokning är lite onödigt.

Om du kan få tag i hela datumet för varje bokning ifrån backenden t.ex. så bör det gå att göra något liknande detta:
Kod:
var $bookings = $('.bokning');

//Cacha unix timestamp för bokningarna
$bookings.each(function(){
    var 
$this = $(this);
    var 
unix = (Date.parse("Hela bokningens datum här") / 1000);
    
$this.data('unix-time'unix);
});


//Uppdatera bakgrundsfärgen på varje bokning var 10 sekund
setInterval(function(){
    var 
now = (new Date.now() / 1000);
    
    
$bookings.each(function(ibooking){
        
updateBackground($(booking), now);
    });
    
}, 
10000);

function 
updateBackground($bookingnow){
    var 
unix $booking.data('unix-time');
    
    
//Diffen mellan nu och bokningen i sekunder
    
var diff unix now;
    
    
//Gör någonting beroende på hur stor diffen är

Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback