-
Ahoj, chtěl bych se zeptat, mám stránku kde mám jeden snippet, ten mi překresluje obrázek a odkaz navěšený na handle* v nette. Spinner se zobrazí pouze když se zavolá první ajax, na druhý ajax požadavek se už nezobrazí. Předpokládám že by bylo zřejmě potřeba upravit chování v tomto rozšíření. Které jsem našel v dokumentaci. class LoadingIndicatorExtension {
constructor(defaultLoadingIndicatorSelector) {
this.defaultLoadingIndicatorSelector = defaultLoadingIndicatorSelector;
}
initialize(naja) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', () => {
this.defaultLoadingIndicator = document.querySelector(this.defaultLoadingIndicatorSelector);
});
} else {
this.defaultLoadingIndicator = document.querySelector(this.defaultLoadingIndicatorSelector);
}
naja.uiHandler.addEventListener('interaction', this.locateLoadingIndicator.bind(this));
naja.addEventListener('start', this.showLoader.bind(this));
naja.addEventListener('complete', this.hideLoader.bind(this));
}
locateLoadingIndicator(event) {
const loadingIndicator = event.detail.element.closest('[data-loading-indicator]');
event.detail.options.loadingIndicator = loadingIndicator || this.defaultLoadingIndicator;
}
showLoader(event) {
event.detail.options.loadingIndicator?.classList.add('spinner-border');
}
hideLoader(event) {
event.detail.options.loadingIndicator?.classList.remove('spinner-border');
}
} Kdyby mi někdo mohl pomoct byl bych rád, předem bych vám chtěl poděkovat za ochotu. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Ahoj, nejvíc asi záleží na tom, kde je umístěný ten spinner. Pokud je součástí snippetu, překreslí se taky, takže v Quickfix může být to, že budeš |
Beta Was this translation helpful? Give feedback.
Ahoj, nejvíc asi záleží na tom, kde je umístěný ten spinner. Pokud je součástí snippetu, překreslí se taky, takže v
this.defaultLoadingIndicator
, který se plní jen při inicializaci, zůstane viset reference na element, který v DOMu už dávno neexistuje.Quickfix může být to, že budeš
this.defaultLoadingIndicator
plnit pokaždé zčerstva třeba v té metodělocateLoadingIndicator()
.