Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用slideUp AngularJs和引导重新显示警报_Javascript_Jquery_Twitter Bootstrap_Twitter Bootstrap 3 - Fatal编程技术网

Javascript 使用slideUp AngularJs和引导重新显示警报

Javascript 使用slideUp AngularJs和引导重新显示警报,javascript,jquery,twitter-bootstrap,twitter-bootstrap-3,Javascript,Jquery,Twitter Bootstrap,Twitter Bootstrap 3,我的设想是: 我有一个文件上传程序,用户只能选择一些预定义的格式。问题是,如果用户选择了一个禁止的扩展名,我想显示一个警报,表明他选择了一个无效的文件。问题是,在我调用slideUp并尝试再次显示警报后,它永远不会显示 我的js: $('#testBtn').click(function(){ $(".alert").show(); window.setTimeout(function() { $(".alert").fadeTo(1500, 0).slideUp(500, func

我的设想是: 我有一个文件上传程序,用户只能选择一些预定义的格式。问题是,如果用户选择了一个禁止的扩展名,我想显示一个警报,表明他选择了一个无效的文件。问题是,在我调用slideUp并尝试再次显示警报后,它永远不会显示

我的js:

$('#testBtn').click(function(){
$(".alert").show();
  window.setTimeout(function() {
    $(".alert").fadeTo(1500, 0).slideUp(500, function(){
   });
}, 5000);
});
当然,我不是通过按钮触发事件,而是通过上传程序本身上的“错误扩展”事件触发事件

我使用的是bootstrap、AngularJS和Jquery。下面是一个模拟问题的小提琴:


提前谢谢

您需要将
.alert
元素的不透明度从
0
重置为
1
,因为它是由
fadeTo
设置的:

$(".alert").fadeTo(1500, 0).slideUp(500, function(){
    $(this).css({'opacity': 1});
});

关键在于您使用的方法:

显示->设置
display:block

隐藏->设置
显示:无

fadeTo->set
opacity:0

现在,单击一次后,在
.alert
上有
显示:无
不透明度:0
,两者都隐藏了警报元素。再次单击时,
display:block
通过show()设置,但
opacity:0
仍隐藏元素。一个可能的快速解决方案是在单击后设置不透明度:

$('#testBtn').click(function(){
    $(".alert").css('opacity', '1');
    $(".alert").show();

    window.setTimeout(function() {
        $(".alert").fadeTo(1500, 0).slideUp(500, function(){
        });
    }, 5000);
});
最好的 马克