jQuery: кнопка не работает в html, возвращаемом ajaxForm - как перепривязать?

Попытка заставить кнопку работать (функциональность jQuery UI chrome и jQuery) во второй форме, которая находится в HTML, возвращаемом ajaxForm, который был вызван в первой форме. Кнопка работает в первом виде - виден хром jQuery UI и работает событие ajaxForm. Для второй формы кнопка является общей, и ajaxForm не работает, она отправляет цели, определенной в форме, не через jQuery. Я думаю, что моя проблема связана с bind() или делегатом () или live(), но я просто не понимаю, как выполнить повторное связывание. Вот мой код:

// prepare Options Object for first form submit of new program
     var options = { 
     target:     '#add_program_container', 
     success:    function (response) {
              jQuery('#add_program_container').html(response);
        }
     }; 

     // pass options to ajaxForm for first form sumit of new program

     jQuery('#new_program_form').ajaxForm(options);

      // prepare Options Object for second form submit of new program - requirements
     var options = { 
      target:     '#add_program_container', 
      success:    function (response) {
         jQuery('#add_program_container').html(response);

         }
     }; 

     // pass options to ajaxForm for second form submit of new program - requirements

     jQuery('#new_program_form_two').ajaxForm(options);

Кнопка:

jQuery('#next_button').button({
      icons: { secondary: 'ui-icon-carat-1-e' }
     });

HTML(форма возвращается ajaxForm, это кнопка с использованием jQuery UI)

<button id="next_button" type="submit">Next</button>

Любая помощь высоко ценится!

2 ответа

Решение

Я добавил функцию initBinding() в функцию document.ready и вызвал ее при начальном связывании:

jQuery(document).ready(function() {

initBinding();

//functions for initial bind

function initBinding() {

    //other functions to rebind after ajax success, can be same functions called initially
}
}

Я думаю, что этот подход использует связывание. Вы должны использовать вживую:

$ ("# next_button"). live ('click', function () {// ваш код});

Другие вопросы по тегам