2016-01-19 1 views
2

Я пытаюсь создать простую персональную домашнюю страницу для себя, используя локальные html и JQuery. Я добавил ссылку на Bing Rewards.Проверьте, не было ли нажата ссылка в прошлый день

<a id="bing" href="https://www.bing.com/rewards/dashboard">Bing Rewards</a> 

Тем не менее, я хочу только посетить этот сайт один раз в день. Когда я нажимаю на нее, я хочу, чтобы она пряталась до следующего дня.

$('#bing').click(function(){ 
    $(this).hide(); 
} 

Когда я закрываю и повторно открыть страницу, как бы я сделать это так, что он знает, что я в последний раз доступ по ссылке, и на его основе, либо показывает связь или нет? Я довольно новичок в таких вещах, поэтому чем проще ответ, тем лучше. Благодаря!

ответ

1

После этого скрывается или отображается кнопка на странице загрузки и сохранения времени в localStorage.

Если страница оставаться открытыми в течение длительного времени вы хотите запустить интервальный таймер, чтобы проверить разницу Даты

var lastBing = localStorage.getItem('last_bing'), 
    now = new Date(), 
    showButton = true;  
if (lastBing) { 
    lastBing = new Date(+lastBing); 
    showButton = lastBing.setDate(lastBing.getDate() + 1) < now; 
} 

$('#bing').click(function() { 
    localStorage.setItem('last_bing', +new Date()); 
    $(this).hide(); 
}).toggle(showButton); 
+0

Спасибо за короткий и простой ответ! –

1

В этом методе, на следующий день (с полуночи) последнего клика хранится в локальном хранилище (demo)

$(function() { 
    var oneDay = 8.64e7, // 24 hours in milliseconds 
    lastClicked = localStorage.getItem('bing-time'), 
    showLink = new Date().getTime() > lastClicked + oneDay; 
    $('#bing').toggle(showLink); 
    if (showLink) { 
    $('#bing').on('click', function() { 
     var date = new Date(); 
     // set time to midnight 
     date.setHours(0,0,0,0); 
     localStorage.setItem('bing-time', date); 
     $(this).hide(); 
    }); 
    } 

    // reset localstorage - for demo 
    $('button').click(function() { 
    localStorage.removeItem('bing-time'); 
    }); 
}); 
1

Вы можете сохранить время щелчка в печенье. Использование некоторой библиотеки, такой как js-cookie, будет намного проще.

$('#bing').click(function() { 
    $(this).hide(); 

    // set cookies to expire in 14 days 
    Cookies.set('bing-click-time', new Date(), { 
     expires : 14 
    }); 
}); 
var clickTime = Cookies.get('bing-click-time'); 
if (clickTime != undefined) { 
    var cTime = new Date(clickTime); 
    var diff = new Date().getTime() - cTime.getTime(); 
    console.log(clickTime, cTime, cTime.getTime(), diff/(1000 * 60)) 
    if (diff/(1000 * 60) < 3) {// eg: less than 3 min 
     $('#bing').hide(); 
    } 
} 
Смежные вопросы