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 () {// ваш код});