我正在使用 HTMX 并创建了一个加载指示器。指标被触发,除了一件事之外,一切都按预期进行。
该指示器显示在我的内容上方,而不是隐藏/替换它。这看起来真的很糟糕,我花了很长时间来解决这个问题——但没有任何运气。
这是我的 HTML 代码:
<a href="#financial-data" data-toggle="tab"
hx-indicator=".loader"
hx-get="/my/url"
hx-trigger="click, budget-saved from:body"
hx-target="#financial-data"
hx-swap="innerHTML">Click me</a>
<div class="tab-pane" id="financial-data">
<div class="loader htmx-indicator"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我试图捕捉这个事件,但这 a) 不起作用,b) 感觉超级黑客:
document.body.addEventListener('htmx:beforeSend', (e) => {
if('hx-indicator' in e.target.attributes) {
$(e.detail.target).html('<div class="loader htmx-indicator"></div>');
}
});
Run Code Online (Sandbox Code Playgroud)
有什么想法我做错了什么吗?我不可能是第一个为此挣扎的人,对吗?
编辑:
API 将返回如下内容:
<div class="loader htmx-indicator"></div>
<table><tr><td>My data</td></tr></table>
Run Code Online (Sandbox Code Playgroud)
这是我的加载器 CSS:
.loader {
display: none;
}
.htmx-request .loader {
display: block;
}
.htmx-request.loader {
display: block;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我们还可以使用 HTMX 的指示器功能来隐藏第一次请求后出现在页面上的先前加载的内容。
在响应中,我们向要在新请求期间隐藏的主要内容添加一个新类:
<div class="loader htmx-indicator"></div>
<table class="loaded-content"><tr><td>My data</td></tr></table>
Run Code Online (Sandbox Code Playgroud)
然后我们告诉 HTMX,我们有两个指标目标:真实的 with.loader
和带有 class 的内容.loaded-content
:
<a href="#financial-data" data-toggle="tab"
hx-indicator=".loader,.loaded-content"
hx-get="/my/url"
hx-trigger="click, budget-saved from:body"
hx-target="#financial-data"
hx-swap="innerHTML">Click me</a>
<div class="tab-pane" id="financial-data">
<div class="loader htmx-indicator"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS 定义:
.loader {
display: none;
}
.htmx-request .loader {
display: block;
}
.htmx-request.loader {
display: block;
}
/* Hide previously loaded content during HTMX request */
.htmx-request .loaded-content {
display: none;
}
.htmx-request.loaded-content {
display: none;
}
Run Code Online (Sandbox Code Playgroud)
因此,当用户单击按钮时,HTMX 会将.htmx-request
类添加到两个指标目标。CSS 规则使真实指示器可见,而先前加载的内容在请求期间不可见。
归档时间: |
|
查看次数: |
2313 次 |
最近记录: |