【发布时间】:2021-08-07 01:26:56
【问题描述】:
这是我用来在整个应用程序中显示加载微调器的 html 元素(处于其原始状态)(主要使用 Bootstrap 类):
<div id="loadSpinner" class="overlay d-flex justify-content-center invisible">
...
</div>
这是视图中的表单(Rails 6):
<%= form_with(url: result_path,
method: "patch", local: true) do |f| %>
...
<%= f.submit "Finish", class: "btn btn-success btn-lg my-3",
onclick: "finish();" %>
<% end %>
这是显示加载微调器的“finish()”js 函数:
function finish() {
...
document.querySelector('#loadSpinner').classList.remove('invisible');
}
它在 Chrome 和 Firefox 中运行良好,但加载微调器有时不显示在 Safari 中。
我已经添加了一些日志(console.log(document.querySelector('#loadSpinner')) 在 'invisible' 类删除之后)并且可以看到 'invisible' 类在提交之前实际上被删除了。所以 js 代码工作正常,但微调器没有出现。
另外,我尝试在删除“不可见”类后添加一个“可见”类 - 问题仍然存在。
有人知道为什么会在 Safari 中发生吗?
我有一个假设,实际上提交是在实际删除“不可见”类之前以某种方式发生的,但我不知道检查和修复它的方法。
【问题讨论】:
标签: javascript ruby-on-rails bootstrap-4 safari