使用jquery在5秒后关闭对话框

时间:2016-07-24 09:56:38

标签: javascript jquery html twitter-bootstrap

我正在为我的rails应用程序实现添加wishlist功能。到目前为止,我可以对话消息并在5秒后使其消失。问题是,一旦淡出并且用户点击另一个“添加心愿单”没有对话框。他们必须刷新页面。我还在学习,所以我知道发生了什么。我需要用js关闭对话但是怎么做?

Coming from my last question

HTML

<section data-id="notification"></section>

的JavaScript

...

// Calling the notification();
// You need to reduce that data string!
notification("<div id='noti' class='alert alert-success'><a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a><p>WishList Added!</p></div>");

...

function notification(data){
    $( "[data-id=notification]" ).append( data ).delay(5000).fadeOut(400); // I've tried adding .dialog('close')
    $('#noti').dialog('close'); // this gives an error.
  }

...

总之,当用户添加到心愿单时,会显示一个对话框。用户可以手动关闭对话框,或者在x秒后自动关闭。如果对话框自动关闭,用户点击另一个添加心愿单,警报重新出现等等。我需要将其从dom中删除。

每次用户添加/删除心愿单时,显示消息可能没有意义,但这对我应用的其他部分非常有用。

This question是4年前。从那以后有什么变化吗我需要两个:用户关闭和js关闭。

1 个答案:

答案 0 :(得分:1)

您应该使用alert('close')

$( "[data-id=notification]" ).append( data ).delay(5000).fadeOut(400);
$('#noti').alert('close');

或使用setTimeout

$( "[data-id=notification]" ).append( data );
setTimeout(function() { $('#noti').alert('close'); }, 5000);

希望这有帮助。