Не работает модальное окно в подгружаемой вкладке.
Привет всем! Возникла сложность не знаю как решить... Есть страница в которой две вкладки реализованой через Jquery UI tabs одна из которых (вторая) подгружает во вкладку страничку через Ajax. Так вот конструкция
<a id="open_dialog_new_position" href="#"><img align="top" src="/tdt/images/document-import.png"></a> <div id="dialog_new_position"> проверка </div> размещенная в первой вкладке работает нормально, она же размещенная в подгружаемой страничке не работает совсем, т.е. я на второй странице вижу и ссылку и надпись "проверка", естественно при клике на ссылку ничего не происходит... Подскажите как победить проблему если кто сталкивался. Заранее спасибо. |
Arey,
Аякс загрузку нужно делать через чистый Aякс responseText Либо отдельно подгрузить (или сразу установить скрипты) для подгружаемой вкладки, обычный get или load скрипты отсекает Если скрипты уже стоят на странице - то 1. Можно их переинициализировать по загрузке вкладке(скорей всего у Вас события в скрипте не live) 2. Любо прописываем через "Живые события" on или live |
Цитата:
Если я правильно понял, то проблема в том что у меня появляются дивы которые долны быть обработаны до момента загрузки страницы и появление новых блоков которым должны быть присвоены соответсвующие параметры, в частности hide на модальное окно происходит после того, как собственно уже все присвоено, и так как нет никаких событий позволяющих это сделать заново и присвоить эти параметры то окно видно. Я правильно понял? Если да то насколько я понял после загрузки страницы на сделать что-то типа "перезапуска" куска кода? Если логика верна подскажите пожалуйста как это лучше сделать. |
Arey,
Если скрипты уже стоят на странице(а не подгружаются с контентом - то события им нужно прописывать либо через live, либо через on в версиях более 1.7.0 live для старых версий => http://jquery-docs.ru/Events/live/#typefn |
Цитата:
$(function(){ $("#dialog_new_position").dialog({ autoOpen: false, modal: true, title: 'Новая позиция' }); $("#open_dialog_new_position").click(function(){ $("#dialog_new_position").dialog("open"); }); $("#close_dialog_new_position").click(function(){ $("#dialog_new_position").dialog("close"); }); }); в погружаемой странице есть <a id="open_dialog_new_position" href="#">проверить</a> <div id="dialog_new_position"> проверка </div> |
Цитата:
|
1.8 самая свежая
|
$(function(){ $("#dialog_new_position").dialog({ autoOpen: false, modal: true, title: 'Новая позиция' }); $("#open_dialog_new_position").on('click',function(){ $("#dialog_new_position").dialog("open"); }); $("#close_dialog_new_position").on('click',function(){ $("#dialog_new_position").dialog("close"); }); }); |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 03:20. |