LINUX.ORG.RU

Bootstrap modal накапливается!!!

 , ,


0

1

Всем доброго времени суток!

Суть проблемы такова:

есть бутстраповская модалка:

  <div id="eventInfo" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="eventInfo" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">

            <div class="modal-header">
              ...
            </div>

            <div class="modal-body">
              ...
            </div>

            <div class="modal-footer">

              <button type="submit" name="submit-button" class="btn btn-danger delete_event" data-dismiss="modal" aria-hidden="true">
                <i class="icon-remove-sign"></i>&nbsp;Удалить данный заказ&nbsp;<i class="icon-remove-sign"></i>
              </button>

              <button type="submit" name="submit-button" class="btn btn-primary" data-dismiss="modal" aria-hidden="true">
                Закрыть
              </button>

            </div>

          </div>
      </div>
  </div>

Я мониторю нажатие кнопки ".delete_event" и после нажатия выполняю функцию someFunction():

$(".delete_event").click(function() {
   ...
   someFunction();
});

function someFunction() {
   console.log("iter");
}

Проблема в том, что всякий раз, когда я вызываю новую модалку (при учете, что я не презегрузил страницу), собития нажатия ".delete_event" как бы накапливаются (где? в кеше браузера?) и, например, после пятого вызова модалки, и нажатия на кнопку ".delete_event" функция someFucntion() выполняется сразу пять раз подряд!!!

Однако, после перезагрузки страницы - история сбрасывается, но при последующих вызовах модалки (начиная со второго) опять происходит «накопление» (уж не знаю как выразиться) событий нажатия кнопки ".delete_event".

Нашел на so подобную проблема:http://stackoverflow.com/questions/13177426/how-to-destroy-bootstrap-modal-wi...

Но способ сброса данных модалки без перезагрузки страницы не работает.

В чем может быть проблема. Корифеи бустрепа и Jquery, подскажите, плиз(.


Как одна из возможных гипотез: код навешивания хендлера срабатывает при каждом появлении диалога.

Hater ★★
()
Ответ на: комментарий от Hater

По приведённым данным тяжело сказать в чём проблема на самом деле. Приведи пример на jsfiddle.

Hater ★★
()

Кажется мне ты глубоковато копаешь.

При навешивании попробуй сначала всё старое подчистить или гарантировать однократное навешивание. А то похоже, что у тебя просто каждый раз ещё один обработчик регистрируется в комплект к предыдущим.

aleks13
()

срабатывает каждый раз потому что при каждом появлении модалки ты навешиваешь событие ещё раз.

строй модалку, вешай евенты и потом аттач к body, либо вешай евент один раз.

C1nde
()

Да вроде разобрался. Проблема была тривиальной. Просто я ступил чуток(. Всем спасибо).

djnoob
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.