Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 04.02.2012
Сообщений: 22

Как предотвратить дублирование

22.06.2014, 00:27. Показов 4095. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.

Есть обычный чат, Слева находится список контактом а справа окно сообщений,
При загрузке страницы все нормально работает но когда выбираю другова пользователя из списка контактов и отправляю сообщения то происходить дублированные. а если нажму 10 раз на пользователя из контактов то тоже 10 раз дублирует…

Вот код

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
$(document).on('click','.contact_list', function(){ 
        delete room_number
        var room_number = this.id;
            // отправка сообщения
            $('#chatForm').submit(function(e){
                e.preventDefault();
                var text = $.trim($(this).children('textarea').val());
                if(text){
                    
                    $.ajax({
                        type: "POST",
                        url:"/jconfigs/server.php",
                        data:({
                            text:text,
                            type:'add',
                            sender: Huser,
                            chat_ind_room: room_number 
                        }),
                        dataType:"html",
                        async:false,
                        success:function(e){
                            if(e){
                                e = e.split('|');
                                $('<div class="chatComm" id="'+'msg">'+
                                
                                " <article id='comment-id-3' class='comment-item'> <a class='pull-left thumb-sm avatar'><img src="+"></a> <span class='arrow left'></span>"+
                    "<section class='comment-body panel panel-default'>"+
                      "<header class='panel-heading'> <a href='#'>"+"</a>"+
                        "<label class='label bg-success m-l-xs'>User</label>"+
                        "<span class='text-muted m-l-sm pull-right'> <i class='fa fa-clock-o'></i>"+"</span> </header>"+
                      "<div class='panel-body'>"+
                       " <div>"+text+"</div>"+
                        
                      "</div>"+
                    "</section>").appendTo('#chatList');
                                
                              //  var block = document.getElementById("ta");
                          // block.scrollTop = block.scrollHeight;
  
                            }
                        }
                    }).responseText;
                }
            });
            
  
        
    });
Не могу понять в чем проблема (((
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.06.2014, 00:27
Ответы с готовыми решениями:

Как сократить код? и убрать дублирование?
На 5 и 7 строки Шторм ругается &quot;Duplicated jQuery Selector&quot;. Можно как-то сократить или исправить нормально 5,6 и 7 строки? (В data из...

Предотвратить отправку формы
Сделала простой скрипт проверки ввода пароля function passcontrol() { var password1 = document.getElementById('password1'); ...

Предотвратить выполнение JavaScript функции
Доброго времени суток. Есть некоторый сайт, на котором может отображаться произвольная строка, полученная от внешнего подключения....

4
странник
 Аватар для Donald28
810 / 481 / 108
Регистрация: 28.05.2012
Сообщений: 1,518
Записей в блоге: 2
22.06.2014, 01:11
при каждом клике на пользователя у тебя создается новая обработка события "отправки формы" ($('#chatForm').submit(function(e){)

таким образом при отправки формы происходит его обработка столько раз сколько этих обработок создалось.

решение "влоб" использовать unbind
0
0 / 0 / 0
Регистрация: 04.02.2012
Сообщений: 22
22.06.2014, 02:34  [ТС]
Donald28,

а можно пример?? как это сделать??
спасибо )
0
странник
 Аватар для Donald28
810 / 481 / 108
Регистрация: 28.05.2012
Сообщений: 1,518
Записей в блоге: 2
22.06.2014, 11:57
JavaScript
1
2
$(document).on('click','.contact_list', function(){ 
    $('#chatForm').unbind('submin');
и далее по твоему коду все оставляешь

Добавлено через 5 минут
хотя тебе лучше вынести обработчик
JavaScript
1
 $('#chatForm').submit(function(e){
из обработчика
JavaScript
1
$(document).on('click','.contact_list', function(){
и переменную room_number объявить глобальной
и тогда unbind не потребуется:

JavaScript
1
2
3
4
5
6
7
8
9
10
var room_number;
$(document).on('click','.contact_list', function(){ 
        room_number = this.id;
});
 
// отправка сообщения
$(document).on('submit','#chatForm', function(e){
        e.preventDefault();
        // тут далее твой код
});
1
0 / 0 / 0
Регистрация: 04.02.2012
Сообщений: 22
22.06.2014, 17:53  [ТС]
Спасибо )
вечером попробую )

Добавлено через 1 час 30 минут
Все заработало!!!! Спасибо вам большое )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.06.2014, 17:53
Помогаю со студенческими работами здесь

Предотвратить перезагрузку страницы при клике по submit формы
Как предотвратить перезагрузку страницы при клике по submit формы. &lt;form action=&quot;#&quot;&gt; &lt;input type=&quot;text&quot;&gt;&lt;br&gt; ...

Предотвратить открывание всех пунктов меню при загрузке
есть такое меню: &lt;div id=&quot;menu&quot;&gt; &lt;ul id=&quot;accordion&quot;&gt; &lt;li id=&quot;m1&quot;&gt; ГЛАВНЫЙ ПУНКТ 1 &lt;ul&gt; ...

Как предотвратить выход из приложения
Есть ли возможность в MS Access, когда пользователь закрывает окно приложения: File-&gt;Exit приостановить процесс выхода и...

Как предотвратить слияние таблицы?
У меня есть таблица,которая выводит из mysql результаты расчетов,т.е пользователь вводит исходные данные,нажимает кнопку посчитать и...

Как убрать-предотвратить спам?
Помогите убрать спам с сайта. У меня есть сайт объявлений и туда через каждые несколько дней добавляют одно объявление-спам. Как сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru