@Tigronix

Как заставить скрипт выводиться лишь раз?

Нужно, чтобы скрипт один раз показался на странице и при закрытии больше не появлялся пока не обновишь страницу. Как это сделать? Спасибо заранее...
//FB show
function showBlock(){
	var scroll = $(document).scrollTop();
	var maxh = $(document).height() - $(window).height() - 1000;

	if (scroll >= maxh ){
	 $('.fb-block').show();
	}
}

window.onscroll = function() {
	showBlock();
}

	$(document).ready(function($){
	$(document).on('click', '.close-fb', function(){
		$('.fb-block').hide();
	});
});
  • Вопрос задан
  • 183 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
$(function () {
	// Глобальная переменная-флаг
	// Изначально имеет значение false, так как блок пока никто не закрыл
	var isClosed = false;

	function showBlock() {
		// Проверяем состояние флага - если блок уже закрыли, ничего больше делать не нужно
		if (isClosed)
		{
			return;
		}

		var scroll = $(document).scrollTop();
		var maxh = $(document).height() - $(window).height() - 1000;

		if (scroll >= maxh)
		{
			$('.fb-block').show();
		}
	}

	// Совершенно не нужно создавать промежуточную анонимную функцию, можно сразу обработчик назначить
	// Ну и делать это нужно внутри ready, поскольку внутри обработчика используется $
	window.onscroll = showBlock;

	$(document).on('click', '.close-fb', function () {
		// Устанавливаем флаг в true
		isClosed = true;
		$('.fb-block').hide();
	});
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы