append () добавляется несколько раз подряд - PullRequest
1 голос
/ 20 сентября 2011

Я настроил поле отправки с помощью функции ajax, и в случае успеха у меня есть функция .append ()

Проблема в том, что он будет добавляться последовательно, когда я пытаюсь что-то отправить. Например: если я отправляю комментарий в первый раз, он добавляется правильно, затем, если я отправляю другой комментарий сразу после (без обновления страницы), он будет добавлен дважды, затем, если я отправлю другой комментарий после этого, он будет добавлен три раза, так далее и так далее. Как я могу предотвратить это?

    var id = $(this).attr('id');
    $('#comments_'+id).keydown(function(e){
        if(e.keyCode == 13)
        {
            e.preventDefault();
            var comment = $(id).val();
            var comment = 'comment='+comment;

            $.ajax({
            type: "POST",
            url: "edit.php",
            data: comment,
            cache: false,
            success: function(data)
            {
                $('#commentSelect'+id).append(data);
            }

        }); 
                return false;

        }
    });

Я настроил, чтобы я мог отправить на ввод

Спасибо за ваше время!

1 Ответ

1 голос
/ 20 сентября 2011

Не зная еще нескольких деталей, я думаю, вы загружаете этот javascript после каждого ajax-запроса.Каждый раз, когда он запускается, он перепривязывает событие.Вам нужно либо загрузить его только один раз на страницу загрузки, либо изменить

$('#comments_'+id).keydown(function(e){

на

$('#comments_'+id).unbind('keydown').keydown(function(e){
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...