01/10/2018, 14:22

Muốn hiện popup một lần khi người dùng click close

Xin chào mọi người, mình đang bị vướng mắc ở popup. Mình có khai báo đoạn để close popup đó đi khi người dùng không muốn nhìn, nhưng sang page khác nó lại hiện.
Giờ mình muốn là khi họ click tắt là nó sẽ ko hiện khi click sang page, chỉ có tắt trình duyệt vào lại thì nó mới hiện.
đây là đoạn mã của mình đang dùng chỉ tắt không chế

    $(".close_x").click(function(e){jQuery('#popup').fadeOut(300);});

cám ơn mọi người

Khoa Nguyen viết 16:38 ngày 01/10/2018

Bạn có thể tìm hiểu về session storage để lưu thông tin này lại. Hoặc là cookie nếu bạn chỉ muốn hiện popup một lần

Cọng Phở viết 16:32 ngày 01/10/2018

Cám ơn bạn đã gợi ý, đây là đoạn code hoàn chỉnh của mình, có điều là phải 15 phút mới clearn dc cookie, giờ mình muốn khi người ta tắt trình duyệt mở lên lại thì nó sẽ hiện lên bình thường thì như nào bạn nhỉ

    cookie_popup = (function() {
	if ($.cookie('cookie_popup') == undefined) {
		$('.box_dm_ihd').fadeIn();
		$.cookie('cookie_popup',true,{ expires: 15/(24*60) });
	};

	$('.close_x').click(function (e) {
		e.preventDefault();
		$('.box_dm_ihd').fadeOut(300);
	});
	
});

setTimeout(function() {
	cookie_popup();
}, 1000);
Khoa Nguyen viết 16:39 ngày 01/10/2018

Đó là lí do mình nhắc tới session storage. Mọi thông tin bạn lưu sẽ mất khi người dùng mở tab mới/ cửa sổ mới

Vô Thin viết 16:30 ngày 01/10/2018

Bạn chủ topic sử dụng ngôn ngữ lập trình gì phía server, nên tìm kiếm từ khóa Session cookie + tên ngôn ngữ lập trình đó là ra, lúc đó đóng trình duyệt lại thì cookie được xóa ngay.

Hoặc chỉnh đoạn code trên của bạn chỗ 15/(24*60) đó thành date , trong đó, date được bạn khai báo trước như sau:

var date = new Date();
date.setTime(date.getTime() + (30 * 1000));

Thay số 30 * 1000 thành n * 1000 (n là số giây bạn cần cookie hết hạn, 10 giây có thể đủ cho việc đóng và mở lại trình duyệt). Vậy là xong.

Bài liên quan
0