Когда вы загружаете новый контент, вы должны повторно применить такие вещи, как ".dialog ()" из вашего собственного кода.Как правило, вы делаете это в обработчике «success» из механизма ajax, который вы использовали для загрузки контента.
Это означает, что это действительно хорошая идея - организовать код установки «виджета» вашей страницы так, чтобычто он может быть вызван для работы с произвольной частью страницы.Во время инициализации страницы вы будете запускать его для <body>
, но после динамической загрузки содержимого вы будете запускать его для обновленного элемента контейнера.
edit - более подробно: как именно вы будете это делать, зависит от вас, и это зависит от того, что вы делаете в своем приложении.Я написал jQuery-плагин для решения проблемы, но это может быть излишним для многих целей.
Общая идея заключается в том, что у вас будет функция инициализации:
function initializeFeatures(startingPoint) {
Внутри функции вы выполняете такие вещи, как инициализация диалогов, и вы основываете код, который выполняет работу, на параметре «стартовой точки».Другими словами, когда код должен «найти» элементы страницы для настройки, он всегда должен начинаться с него:
$(startingPoint).find('.dialog-container').dialog({
resizable: true,
autoOpen: false,
// ...
});
Затем в вашем обработчике «success» после загрузки контента выможно просто снова вызвать вашу функцию:
$('#dynamic').load('/your/url', function() {
initializeFeatures(this);
});
Опять же, это полностью зависит от точных деталей вашего приложения.