2013-05-03 30 views
10

Tôi chỉ muốn hiển thị div chào mừng một lần cho mỗi người dùng hoặc phiên. Tôi biết rằng có tùy chọn Jquery. Kể từ khi một người mới đến jquery, tôi đã không thể giải quyết nó bản thân mình. Xin vui lòng giúpChỉ hiển thị div chào mừng một lần cho mỗi phiên người dùng/trình duyệt

$(document).ready(function() { 
 
    $("#close-welcome").click(function() { 
 
    $(".welcome").fadeOut(1000); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="welcome"> 
 
    <div> 
 
    <h1>Hello..!<br> Welcome to ABC 
 
    <br> 
 
    </h1> 
 
    <h2>We wish you a Great Day..!</h2> 
 
    <br> 
 

 
    <h2><a id="close-welcome" href="#">Thank you.. and please take me to the  website</a> </h2> 
 
    </div> 
 
</div>

Tôi muốn hiển thị trang chào mừng này chỉ một lần, cho đến khi người dùng đóng trình duyệt .. Đang chờ sự giúp đỡ quý báu

+0

Nếu bạn đã có hệ thống đăng nhập đính kèm thông tin đó vào cookie phiên đăng nhập, nếu không hãy sử dụng câu trả lời mkhatib và cookie chỉ cho điều đó. Cũng nên nhớ rằng các cookie chỉ http phía máy chủ an toàn hơn. –

Trả lời

29

Đặt một cookie.

$(document).ready(function() { 
    if ($.cookie('noShowWelcome')) $('.welcome').hide(); 
    else { 
     $("#close-welcome").click(function() { 
      $(".welcome").fadeOut(1000); 
      $.cookie('noShowWelcome', true);  
     }); 
    } 
}); 

Bạn cần bao gồm tệp JavaScript jQuery.cookie.

https://raw.githubusercontent.com/carhartl/jquery-cookie/master/src/jquery.cookie.js

+0

Hi mkhatib, cảm ơn phản ứng nhanh hơn .. Tôi đã sao chép tập lệnh và đưa ra tham chiếu đến jquery.cookie.js như được chỉ định bởi bạn. Tuy nhiên điều tương tự cũng không hiệu quả .. Tôi đã bỏ lỡ điều gì đó ..Xin tư vấn – Gops

+0

Tôi vừa nhận thấy rằng mã của tôi thiếu dấu ngoặc đơn đóng cho hàm 'ready'. Đó có thể là nó. Nếu không, bạn có thể kiểm tra giao diện điều khiển nếu bạn nhận được bất kỳ lỗi javascript nào không? – mkhatib

+0

Đây là lỗi được hiển thị bởi giao diện điều khiển Loại không bắt buộcLỗi: Hàm đối tượng (a, b) {return new e.fn.init (a, b, h)} không có phương pháp 'cookie' – Gops

1

Đó là tốt hơn bởi vì chúng ta sẽ không thấy nhấp nháy khi lẩn trốn trên ruồi

<a href="" id="close-edu" class="waves-effect"><span class="edu" style="display: none;">New</span></a> 

jquery

$(document).ready(function() { 
    if ($.cookie('noShowEducation')) ; 
    else { 
     $('.edu').show(); 
     $("#close-edu").click(function() { 
      $(".edu").fadeOut(1000); 
      $.cookie('noShowEducation');  
     }); 

    } 
}); 
3

Trong trường hợp khách hàng của bạn không ăn bánh

Bạn có thể sử dụng sessionStorage, sau khi tất cả đó là những gì họ có nghĩa là cho chính xác, giữ một bộ sưu tập dữ liệu trong tay trong suốt phiên.

Để có trải nghiệm người dùng tốt nhất, bạn nên bắt đầu với thuộc tính ban đầu [wellcomeElement] .style.display = "none" trong CSS hiện tại của bạn.

Vì vậy, toàn bộ quy trình sẽ trở nên đơn giản như ...

  1. kiểm tra nếu các thông điệp chào mừng đã được chứng minh
  2. Show! : Không hành động!

Xong.

Ví dụ Code:

"message" in sessionStorage ? 0 : 
    [wellcomeElement].style.display = "block", 
    sessionStorage.setItem("message",true); 

Các snip mã có thể được đặt, (nhưng tốt hơn) trong một kịch bản-tag ngay sau khi các yếu tố thông điệp chào mừng.

Tuy nhiên, để tương thích ngược đầy đủ, bạn luôn có thể quay lại sử dụng tên phiên tài sản như trong:

/message/.test(name) ? 0 : 
[wellcomeElement].style.display = "block", 
name = 'message'; 

trọng.

Các vấn đề liên quan