Вопрос

У меня есть следующий код

$("#logoutLink").click(function(event) {

    event.preventDefault();

    var dataString = "action=confirm";

    $.ajax({
        type: "POST",
        url: "requests.php",
        data: dataString,
        success: function(msg) {
            if (msg == "success") {
               alert('logged out');
            } else {
                showNotification("error", "" + msg + "");
            }
        },
        error: function() {
            showNotification("error", "Could not log you out at this time, try again.");
        }
    });

    return false;
});

и ссылка с id="logoutLink"

PreventDefault не работает в первый раз, потому что система входа не обновляет ссылку и не добавляет html-содержимое со ссылками, в которых есть ссылка для выхода из системы, и поэтому элемент не существует в html. Я знаю, что это проблема, но мой вопрос: как мне сообщить, что html-контент был добавлен с идентификатором ссылки logoutLink без обновления страницы?

Это было полезно?

Решение

Ваш вопрос неясен, но если вы добавляете ссылку динамически, вам следует использовать либо .live('click', ...), или новый jQuery 1.7 .on().

Другие советы

Ваш вопрос немного запутается, но попробуйте использовать live(), чтобы связать свой обработчик событий:

$("#logoutLink").live('click', function(event) {
    // ...
.

Смотрите http://api.jquery.com/live/ для получения дополнительной информации.

.

Вам необходимо добавить щелчок $("#logoutLink").click(function(event) {} только после того, как система входа в систему добавляет ссылки, поэтому я сделаю следующее

function addHandlers(){
    $("#logoutLink").click(function(event) {
         event.preventDefault();
         // anything else
    }
}

$(document).ready(function(){
    addHandlers();
});
.

Тогда также позвоните в addHandlers();, когда добавляются ссылки

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top