О $.ajax.context

Вроде удобно сделали, теперь можно задать контекст для метода success, теперь вместо


$.ajax({
	url: "...",
	success: function(){
		$("#myTemplate").tmpl(data).appendTo($("#myContainer").empty());
	}
});

можно удобно писать


$.ajax({
	url: "...",
	context: $("#myContainer").empty(),
	success: function(){
		$("#myTemplate").tmpl(data).appendTo(this);
	}
});

только это все разбивается о рифы реальности, когда аджакс надо повесить на кнопку


$("#myButton").click(function(){
	$.ajax({
		url: "...",
		context: $("#myContainer").empty(),
		success: function(){
			$("#myTemplate").tmpl(data).appendTo(this);
		}
	});
});

При трех быстрых кликах, контейнер три раза обнуляется, потом идет запрос/ответ и шаблон три раза вставляется в контейнер.

6 Комментарии “О $.ajax.context

  1. При первом клике убирай эвент, чтобы нельзя было кликнуть еще раз.
    В чем траблы то?

  2. так ты себя слегка поддосишь, а в моем случае просто раз обработаешь

  3. как по мне то убирать обработчик и вешать его снова это бред, проще ставить локер.

  4. локер это ок. Просто сам факт, что если уже идет один запрос, то из этой же области слать такой же самый вдогонку как-то неправильно что ли. Нужно дождаться ответа, пусть даже там по тайм-ауту отвалилось)

  5. правильно если запрос идет с другими параметрами. ну да не суть. я за локер или за abort но не за качели с событиями)

Комментарии закрыты