2011-01-27 2 views
0

У меня есть форма в модальном окне с использованием jquery.simpleModal. Поскольку simpleModal клонирует содержимое исходного div для создания модального диалога, мне нужно перестроить обработчики событий после создания модального диалога. Мой код выглядит примерно так:Обработчик события Javascript не работает

function showForm() { 

    $('div.contactUs').modal({ 
     opacity: 80, 
     overlayClose: true, 
     autoResize: true 
    }); 

    var container = $('.simplemodal-container'); 
    container.find('li.phone input').mask('(999) 999-9999'); 
    container.find('li.comments textarea').maxChar(1000, { indicator: 'div.commentLength span' }); 
    container.find('form').submit(function() { 

     try { 
      var form = $(this); 
      var action = form.attr('action'); 
      var data = form.serialize(); 
      $.post(action, data, function (result) { 
       form.html(result); 
       showForm(); 
      }); 
     } catch (e) { 
      alert(e); 
     } 

     return false; 
    }); 

} 

Однако, если я открыть модальное диалоговое окно, а затем закрыть его, а затем открыть его снова, кажется, что форма представить обработчик не подключен (открытие модальное диалоговое второй раз и нажав на отправку результатов в полноэкранном обратном обращении, а не на обработчике ajax). Я проверил, что другой материал получает ретрансляцию (маска ввода и максимальное ограничение символов), так почему же обработчик отправки не работает?

ответ

0

С .submit(function(){}) представляет собой сокращенную .bind('submit',function(){}), я считаю, что только с помощью .live('submit',function(){}) в первый раз связать функцию будет исправить вашу проблему без пересвязать функции на клоне. .live() свяжет событие с текущими элементами, а также с любыми динамически создаваемыми элементами, которые будут соответствовать вашему селектору в будущем.

+0

Это исправить, но я все еще удивляюсь, почему повторная попытка не сработала. Если кто-то может ответить, я дам им ответ. В противном случае я дам вам кредит. – Chris

Смежные вопросы