Если вы знаете, какую область содержимого нужно заполнить, вы можете узнать, на какую область щелкнули, используя $(this)
, и можете ссылаться на ее раздел с помощью $(this).parent()
, предполагая, что нужный элемент является элементом .section
.
$('.clickme').click(function(event) {
event.preventDefault();
var stringURL = $(this).attr("href");
// store the parent of the element clicked
var $section = $(this).parent();
$.ajax({
type: "get"
, url: stringURL
, data: "ajax=1"
, success: function(html){
// Append html to the section
$section.append(html);
}
});
});
Если единственное, что делает <a>
, - это вызов AJAX, то одним из вариантов будет открепление события в обратном вызове success
.
var $th = $(this);
Тогда в успехе AJAX:
$th.unbind('click');
Если это не вариант, то, зная, заполнено ли оно уже или нет, вы можете найти какой-либо контент, полученный до вас .append()
(или даже до того, как вы сделаете запрос, если контент известно).
Другой вариант - поместить какой-то маркер, например класс, в элемент .section
, например:
$section.addClass('populated');
... чтобы указать, что оно уже заполнено. Затем проверьте этот класс и запретите ajax, если он существует.
Существуют и другие варианты, в зависимости от реальных обстоятельств.