Получить значение href после загрузки ссылки с помощью AJAX в jQuery - PullRequest
0 голосов
/ 14 августа 2011

Я пытаюсь обновить одну запись в моей базе данных с помощью AJAX. Все работает нормально, но когда результат возвращается, он выглядит нормально, но если снова щелкнуть a.update (для возвращаемого элемента), я открою href (поэтому во второй раз attr () не работает для некоторых причина). Я очень новичок в JQuery и AJAX:)

    // Update Single Item   
$('li a.update').click(function () {
updateURL = $(this).attr("href");
$(this).attr("href", "#");
theContainer = $(this).parents('li');
    $.ajax({
    type: "GET",
    dataType: 'json',
    url: updateURL,
        async: false,
    success: function(data){
        theContainer.replaceWith(data.html).fadeIn(300);
    }

    });
    return false;
    });

p.s. Элемент List генерируется с помощью PHP. Когда я запрашиваю один элемент <li>, я генерирую его с точно таким же шаблоном (по умолчанию все печатается с циклом foreach, после этого запросы AJAX возвращают JSON с <li>...</li>)

1 Ответ

1 голос
/ 14 августа 2011

Вы можете использовать метод live, чтобы прикрепить прослушиватель событий ко всем соответствующим элементам независимо от того, находятся ли они уже в DOM или нет:

$('li a.update').live("click", function() {
    //Your code
});

То, как вы присоединяете прослушиватель событий, будет привязывать его только к элементам, находящимся в данный момент в DOM, и когда вы добавляете новые через AJAX, они не получают прослушиватель событий.

...