我正在使用 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>
我试图抓住这个事件,但这 a) 不起作用并且 b) 感觉超级 hacky:
document.body.addEventListener('htmx:beforeSend', (e) => {
if('hx-indicator' in e.target.attributes) {
$(e.detail.target).html('<div class="loader htmx-indicator"></div>');
}
});
有什么想法我做错了吗?我不可能是第一个为此挣扎的人,对吧?
编辑:
API 将返回如下内容:
<div class="loader htmx-indicator"></div>
<table><tr><td>My data</td></tr></table>
这是我的加载器CSS:
.loader {
display: none;
}
.htmx-request .loader {
display: block;
}
.htmx-request.loader {
display: block;
}
谢谢!