2013-03-12 2 views
0

У меня есть галерея изображений. и галерея имеет миниатюры, когда пользователь нажимает на эскиз. Я хочу, чтобы при повторном нажатии пользователем запроса эскизов не нужно запускать и использовать существующие данные.Как я могу проверить уже запрошенные данные ajax?

$.getJSON(url, function(data) { 

} 

я хочу объект JS и сохранить данные в формате JSON для каждого изображения в этом объекте, когда щелчок делается на миниатюру, сначала проверьте, если уже загружены данные, если да, то не делают Ajax вызова и просто используйте данные, которые я выбрал ранее, должен ли я хранить данные об объектах? Если да! то как я могу это сделать?

+0

Просто установите переменную как флаг. –

+0

@Diodeus не могли бы вы привести пример! –

ответ

2

Привязать событие начального клика с помощью .one, а затем в нем связывать новое событие click после запроса ajax.

$(".thumbnail").one("click",function(){ 
    var request = $.getJSON(url); 
    $(this).on("click",function(){ 
     request.done(function(data){ 
      // do something with data when it is available 
     }); 
    }).triggerHandler("click"); 
}); 

Первый щелчок на каждую миниатюре будет запрашивать данные затем использовать эти данные, каждый последующий щелчок только использовать данные

+0

это хороший пример и работает отлично! есть ли какой-либо другой способ, поэтому я могу получить объект данных вне этой функции и проверить, что все объекты соответствуют текущему! что-то вроде 'if ([imageObj1, imageObj2, imageObj3] == imageObj2)' это возможно? –

+0

Я не понимаю, куда вы идете с 'if ([imageObj1, imageObj2, imageObj3] == imageObj2)', один объект никогда не равен другому, если только они не являются буквально одним и тем же объектом. –

+0

ОК. Спасибо за помощь. –

Смежные вопросы