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

为什么警报前未显示元素?

云项禹
2023-03-14
问题内容

为什么#test在警报出现之前没有显示该元素?

jQuery css()方法不应该是同步的吗?

#test {
  display: none;
}



<span id="test">Element</span>



$("#test").css("display", "inline");
alert("Showed element!");

更新:

我的行为在Windows 10的Chrome版本52.0.2743.116 m上表现出来。


问题答案:

它会同步更改样式,并且您会注意到,如果您在下一行读回该值并将其显示出来。

$("#test").css("display", "inline");
alert("Showed element!" + $("#test").css("display"));

但是样式对象的更改会触发重新渲染请求消息到页面渲染器,并且在浏览器空闲之后(即此脚本例程结束之后)立即处理该消息。

不过,这取决于浏览器。在Edge中可以正常工作,并且元素可以立即显示,但在Chrome和Vivaldi中则不能。

查看浏览器如何处理此问题的另一项测试:如果调整浏览器窗口的大小,JSFiddle将进行缩放(每个区域保持相同的相对大小)。如果在警报打开的情况下调整Vivaldi浏览器的大小,则不会这样做。实际上,如果您将其缩小,然后显示警报,然后将其放大,您只会在新空间中看到一个灰色区域,直到关闭消息框。在Edge中,即使整个浏览器窗口显示为灰色,小提琴也会在后台调整大小,因此这不仅是处理时间的问题,而且当警报打开时,Chrome会完全冻结页面。



 类似资料:
  • 在我的应用程序中,当我试图显示自定义的框时,它在android手机中运行良好。现在,当我在android选项卡上安装应用程序时,一切都很好,只有自定义框有问题。不显示。所以我想,我应该检查正常对话框,它工作正常。下面是普通对话框和警报对话框的代码。

  • 问题内容: 最近,我一直在开发此网站,并试图在其中添加超棒的字体图标,以便其可扩展。 问题是他们没有露面。 看一下HTML: 要么 我确实把样式表引用放在了头上。 我不知道为什么他们没有出现。 这里是参考: 好了,这是完整的html: 问题答案: 根据您的参考,您有: 具体来说,就是这个部分。 但是,在您的完整html下是这样的: 您是否尝试过更换与您的全HTML变成这样?

  • 本文向大家介绍Xamarin.iOS 显示登录警报,包括了Xamarin.iOS 显示登录警报的使用技巧和注意事项,需要的朋友参考一下 示例 以下代码适用于iOS 8及更低版本的iOS,用于创建登录警报。            

  • 问题内容: 以下是其中的代码,如果userNameTF或passwordTF已满或为空,则会显示警报。 问题答案: 这是一个很好的例子

  • 我在Jaspersoft Studio中创建了一个示例报告 并将创建的报表发布到服务器连接。但当我打开服务器并检查发布的同一项时,它显示为空报表。为什么会这样?

  • 我想用subreport创建一个简单的Jasper报表,但我无法使其工作。 选择提供一个结果(数据库是Oracle),但是子报表在从生成的repport中不可见。但报告的结尾是一个全新的空页。 你能告诉我这个例子有什么问题吗?我尝试了很多东西(子报表中的默认值,当No Data=所有节时,子报表标题中的No detaily设置,以及很多东西,我不记得了),但没有任何帮助。