用户单击退出时如何添加即显消息

时间:2019-07-10 08:32:57

标签: javascript jquery html

我想在用户单击“退出”按钮时显示Flash消息。此消息应持续3到5秒钟(setTimeout),然后用户将被注销。我希望你能理解我。

$('#logout').click(function(e) {
  e.preventDefault().innerHTML = "You will be logout!";
  setTimeout(function() {
    window.location.href = "/logout";
  }, 5000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<li><a href="/logout" id="logout">Sign out</a></li>

到目前为止,这是我的代码,当用户单击注销时,将显示警报消息,并在3-5秒后注销用户。知道怎么做吗?谢谢大家。

2 个答案:

答案 0 :(得分:1)

您无法设置返回值innerHTML的属性preventDefault。将消息附加到正文,特定元素,或创建一个新元素。

这将显示一个简单的Modal,有关更高级的Modal,请参阅here

$('#logout').click(function(e) {
  e.preventDefault();
  $(this).hide();
  $("body").append('<div style="z-index: 100; position: fixed; top: 10px; margin: 0 auto; left: 0; right: 0; width: 200px; padding: 20px; background: #EEEEEE;">You will be logged out</div>');
  setTimeout(function() {
    window.location.href = "/logout";
  }, 5000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<li><a href="/logout" id="logout">Sign out</a></li>

答案 1 :(得分:0)

我已更正您的代码,以使用jquery选择器$(this).text()函数。我也对文本进行了更正。

让我知道这是否不是您想要的。


演示

$('#logout').click(function(e) {
  e.preventDefault();
  $(this).text("You will be logged out!");
  setTimeout(function() {
    window.location.href = "/logout";
  }, 5000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<li><a href="/logout" id="logout">Sign out</a></li>