Problém se spouštěním callbacků pro zobrazení spinneru za použití knihovny nette.ajax.js
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- fary
- Člen | 155
Ahoj. Rád bych se vás zeptal na radu ohledně zobrazení a schování spinneru za použití knihovny nette.ajax.js.
Mám tento kód (spinner je v elementu img.ajax-spinner):
<div class="typeahead-search header-search" id="typeahead">
{form searchForm}
<input n:name="s" type="search" placeholder="Název interpreta, alba nebo skladby" class="header-search__text typeahead">
<img class="ajax-spinner" src="{$basePath}/frontend/img/spinner.gif">
<button n:name="submit" class="header-search__button">
<span class="icon icon-search" data-grunticon-embed></span>
</button>
{/form}
</div>
pak mám toto css, kde je spinner defaultně schovaný:
.ajax-spinner {
display: none;
position: absolute;
right: 100px;
bottom: 24px;
}
a pak mám javascript, kde se snažím s tím spinnerem pracovat (důležité callbacky jsou start a complete, ty ostatní jsem tam dal jen pro kontrolu zda se volají):
(function($, undefined) {
$.nette.ext('spinner', {
init: function () {
console.log('spinner init');
},
load: function () {
console.log('spinner load');
},
before: function () {
console.log('spinner before');
},
start: function () {
console.log('spinner start');
$('.ajax-spinner').css('display', 'inline');
},
success: function () {
console.log('spinner success');
},
complete: function () {
console.log('spinner complete');
$('.ajax-spinner').hide();
},
error: function () {
console.log('spinner error');
}
});
})(jQuery);
Problém je v tom, že se zavolá calback init a load při načtení stránky, ale pokud něco píšu do inputu v tom formuláři, tak se ty sotatní callbacky nevolají.
Popravdě nevím, jestli to mám vůbec správně. Dal jsem to dohromady na základě toho, co jsem našel na webu.