当前位置: 首页 > 面试题库 >

Twitter Bootstrap警报消息关闭并再次打开

隆芷阳
2023-03-14
问题内容

我的警报消息有问题。它正常显示,当用户按下x(关闭)时,我可以将其关闭,但是当用户尝试再次显示它(例如,单击按钮事件)时,它不会显示。(此外,如果我将此警报消息打印到控制台,则等于[]。)我的代码在这里:

 <div class="alert" style="display: none">
   <a class="close" data-dismiss="alert">×</a>
   <strong>Warning!</strong> Best check yo self, you're not looking too good.
 </div>

事件:

 $(".alert").show();

PS! 仅在发生某些事件(例如,单击按钮)后才需要显示警报消息。还是我做错了什么?


问题答案:

数据删除会完全删除该元素。请改用jQuery的.hide()方法。

快速修复方法:

使用嵌入式JavaScript来隐藏元素onclick,如下所示:

<div class="alert" style="display: none"> 
    <a class="close" onclick="$('.alert').hide()">×</a>  
    <strong>Warning!</strong> Best check yo self, you're not looking too good.  
</div>

<a href="#" onclick="$('alert').show()">show</a>

但是,仅当您懒惰时才应使用它(如果您想要可维护的应用程序,这不是一件好事)。

做正确的方法:

创建新的数据属性以隐藏元素。

Javascript:

$(function(){
    $("[data-hide]").on("click", function(){
        $("." + $(this).attr("data-hide")).hide()
        // -or-, see below
        // $(this).closest("." + $(this).attr("data-hide")).hide()
    })
})






$("." + $(this).attr("data-hide")).hide()

这将隐藏数据隐藏中指定类的所有元素,即:data-hide="alert"将隐藏警报类的所有元素。

Xeon06提供了另一种解决方案

$(this).closest("." + $(this).attr("data-hide")).hide()

这只会隐藏最接近的父元素。如果您不想给每个警报一个唯一的类,这将非常有用。请注意,但是,您需要在警报中放置关闭按钮。

jquery doc中.closest的定义:

对于集合中的每个元素,通过测试元素本身并在DOM树中遍历其祖先,获得与选择器匹配的第一个元素。



 类似资料:
  • 我的猜测是,和在关闭应用程序后为空,并且没有保存。但我不知道怎么解决这个问题。

  • 问题内容: 我希望能够在一定时间后或在特定事件(例如)后使用Javascript自动关闭警报框。从我的研究来看,内置函数似乎不可能实现。有没有办法覆盖它并控制它打开的对话框? 另外,我不希望显示隐藏的div作为警报的替代。我需要一个实际的对话框。 问题答案: 如前所述,您确实无法做到这一点。您可以使用UI框架在窗口内进行模式对话框,也可以具有弹出窗口,该脚本具有超时后自动关闭的脚本…每个方面都有负

  • 问题内容: 我正在验证器中发出很多警告,并且我想抑制stdout中的所有内容,除非提供给的消息。 即,现在我看到了: 我想看看这个: 编辑2: 覆盖工作: 问题答案: 具有您自己的自定义功能的Monkeypatch 。

  • 我知道这可能是一个容易修复的错误,但我没有找到它。当警报框出现并点击时,需要点击2次才能关闭它

  • 我从RabbitMq服务器收到此错误 服务器关闭通道:406(前提条件-失败),并显示消息“前提条件_失败-未知交付标签80” 发生这种情况是因为在消费者任务期间连接丢失,最后,当消息被确认/nack时,我收到此错误,因为我无法在与我接收它的通道不同的通道上确认消息。 这是 RabbitMq 连接的代码 如您所见,连接建立后会创建一个通道,在我收到连接问题后,通道设置为NULL,1秒钟后连接重试,

  • 基本上,我试图建立一个报警应用程序,其中有一些预定义的日期和时间按钮。我一开始就尝试使用AlarmManager和广播接收器,但都不起作用。所以,我使用了alarmManager的前台服务,但仍然,当应用程序被摧毁时,警报不会发出。我是个新手。我试着在网上搜索,但我没有运气。希望这里有很多人来帮助我。提前谢了。 myservice.java AlarmReceiver.java