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>

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


person netefficacy    schedule 25.10.2010    source источник


Ответы (2)


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

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

person zerodin    schedule 25.10.2010

Я добавил функцию 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
}
}
person netefficacy    schedule 27.10.2010