JQuery простая функция - PullRequest
       1

JQuery простая функция

0 голосов
/ 23 апреля 2011

Целью этого кода является удаление комментария с помощью AJAX.Функция вызывается следующим образом:

DeleteComment(166);

И код, который выполняется:

// Each delete button
function DeleteComment(CommentID) {

    $.ajax({
        url: AJAXURL + "?action=del&id=" + CommentID,
        success: function (data) {

            // Parse the data
            if (data.substring(0, 1) == "1") {

                $('#cid' + CommentID).hide();

            } else {
                alert(data.substring(2, data.length));
            }
        }
    });

}

Однако строка $('#cid' + CommentID).hide(); никогда не запускается, так как CommentID не сохраняется, яя новичок в Jquery, может кто-нибудь показать мне, как это изменить, чтобы идентификатор комментария сохранялся при вызове ajax success?

Ответы [ 2 ]

1 голос
/ 23 апреля 2011

Можете ли вы опубликовать больше окружающего кода? Ваш код выглядит так, как будто он должен работать. Но я вижу неприятный комментарий: // Each delete button. То, как вы привязываете функцию DeleteComment к кнопкам, не должно работать так, как вы предполагаете.

Попробуйте вместо этого:

// Iterate over each delete button.  
// The .each(...) provides you a function, a.k.a. local scope, for each button.
$(".deleteButtons").each(function (idx, el) {

    // This is very important: you must create a local variable to hold the ID.
    // How to get the ID is up to you.
    var id = getTheCorrespondingCommentId(idx, el); 

    // Now you can safely pass the local variable to the DeleteComment function:
    $(el).click(function() { DeleteComment(id); });
});
1 голос
/ 23 апреля 2011

поставьте $('#cid' + CommentID).hide(); перед $.ajax({, а затем добавьте $('#cid' + CommentID).show(); к вашему условию else.

Сначала спрячьте его, а затем снова показывайте, если удаление не удалось ...

Несамое изящное решение, но путь наименьшего сопротивления от того, где вы находитесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...