У меня очень простое приложение jQuery, запрашивающее YQL с помощью
SELECT title, href FROM digg.search.search WHERE query="cats" LIMIT 5
Я записываю каждый запрос в простой список ul-li, где я указываю состояние запроса ajax (ajax-loader, хорошо,ошибка).После завершения запроса я хочу изменить CSS class
соответствующего li-элемента с "loading"
на "ok"
/ "err"
соответственно.
Но чтобы определить правильный li-элемент, я должен как-то найтиэто по уникальному идентификатору.Я отмечаю li-элемент атрибутом data-
перед вызовом AJAX следующим образом:
var rqid = uniqId();
$searchLogger.append('<li class="loading" data-rqid="'+ rqid +'"><a href="#">' + q + '</a></li>');
$.ajax({
url : 'http://query.yahooapis.com/v1/public/yql',
type : 'POST',
dataType: 'json',
data : {
callback : '',
format : 'json',
env : 'store://datatables.org/alltableswithkeys',
q : 'SELECT title, href FROM digg.search.search WHERE query="' + q + '" LIMIT 5'
}
В случае успешного обратного вызова мне нужно сослаться на соответствующий элемент li.Я не могу повторно использовать переменную rqid
, потому что она может быть переписана другим запросом, пока первый еще ожидает ответа.
success: function(data) {
$searchLogger.find('[data-rqid="' + idOfThisRequest + '"]')
.removeClass('loading')
.removeClass('error')
.addClass('ok');
... // other code
}
Есть ли какая-либо опция для запроса YQL, чтобы "подписать" запрос моим rqid
, а получить этот идентификатор в обратном вызове?