Вы можете сохранить результат почтового запроса в массиве javascript, чтобы его можно было повторно использовать, см. Ниже:
.sub{
color: red;
font-weight: bold;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mnav" class="list-group">
<a id="1" class="list-group-item active">One</a>
<a id="2" class="list-group-item active">Two</a>
<a id="3" class="list-group-item active">Three</a>
</div>
dummyPost
Я выполнил cachedObj
функцию, которая должна быть изменена, чтобы выполнить почтовый запрос.
Вы можете видеть в журнале моего примера, что при первом щелчке по ссылке он получает свое подменю с «пост», в следующий раз вместо этого он <script type = "text / javascript" > var cachedObj = []; // <- Добавить массив в кэш-подменю // Добавить функцию для извлечения данных из кеша или функции REST getData ( url ) { // Попытка получить данные из кеша if ( cachedObj [ url ]) { console . log ( «Данные, извлеченные из кеша» ); } else { $ . ajax ({ type : 'GET' , url : 'index.php? route = test% 2Fcategory% 2Fchild' + url , success : function ( data ) { cachedObj [ url ] = data ; console . log ( "Данные, полученные из сообщения " ); }), async : false }); } return cachedObj [ url ]; } $ ( документ ). ready ( function () { $ ( '#mnav a' ). on ( 'click' , function () { var cat = $ ( this ). attr ( 'id' ); var url = '& category_id =' + cat ; var data = getData ( url ); // <- вызов новой функции для получения данных if ( data . length > 10 ) { $ ( '#mnav #sub' ). remove (); $ ( data ). insertAfter ( $ ( '#mnav #' + cat )); } }); }); </ script> из кэшированного массива . event.preventDefault
Надеюсь, это поможет вам. До свидания.
Обновление: Применительно к вашему коду должно быть:
POST
Я не могу проверить его, поэтому он может содержать некоторые ошибки.