Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Обновление DOM


Автор: xarakiry 6.9.2011, 11:27
Здравствуйте!
Возникла проблема.
Получаю данные на аяксе содержащие. При не обновляется DOM модель.
 
Вот пример кода 

Код

            $.ajax({
               type: "POST",
               url: "modules/photo/models/rename_image.php?id=" + id,
               data: "name=" + value,
               success: function(html){
                $(".pname2").hide("fast");
                $('#'+id).show("fast"); 
                $('#'+id).text(html);

              }
            });


Данные подгружаются но при этом не инициализируются свойства в них.
Прошу помочь, как обновить DOM модель после получения данных на Ajax

Автор: нуп 6.9.2011, 13:42
А куда добавляются данные, и какие?! 

Автор: xarakiry 6.9.2011, 13:46
Данные добавляются в див блок. Данные в виде html кода.

Автор: нуп 6.9.2011, 13:52
text заменить на html smile 

Автор: xarakiry 6.9.2011, 14:10
унс..не тот отрезок кода пислал ))) у меня 

Код

        $.ajax({
               type: "GET",
               url: "/mini.php",
               data: "a=photo&action=album_prev_ajax&id=<?=$row->id;?>",
               success: function(html){
                    $('#ajx<?=$row->id;?>').append(html);
              }
        });

Автор: нуп 6.9.2011, 14:18
Что находится в html, покажите вывод

Автор: xarakiry 6.9.2011, 14:33
Там находится меню, и еще много чего ..в том числе и еще один аякс запрос...с событиями, которые не 

        <div id="funksi" class="jqueryslidemenu">
            <ul><li>
            <a  href="#" ><?=FUNCTIONS?></a>
                <ul>
                    <li><a href="?a=photo&action=delete_photo&id=<?=$row->id?>&al_id=<?=$_GET['id']?>">
                    <?=DELETE?>
                    </a>
                    </li>
                    <li><a href="?a=photo&action=album_prev&id=<?=$_GET['id']?>&make_main=<?=$row->id?>">
                    <?=MAKE_MAIN?>
                    </a>
                    </li>
                </ul>
            </li>
            </ul>
        </div>


Это меню которое инициализируется раз при загрузке DOM. Как заново инициализировать DOM ?

Автор: нуп 6.9.2011, 14:45
Та ничего не надо обновлять. Простой пример : $('#mydiv).append('<div>dssdasda</div>'); Все же работает?! Значит у вас что-то с html который получаете, или не в тот див засовываете данные

Автор: xarakiry 6.9.2011, 14:49
да неее..все работает если без аякса.... меню работает. А если эту часть подргузить с аяксом то меню не раскрывается как будто джаваскипт не подключен.

Автор: нуп 6.9.2011, 14:59
Вызовите создание меню , после вставки html кода

Автор: xarakiry 6.9.2011, 15:38
знаю...но это не оптимальный вариант..т.к получится двойная подгрузка. Скрипт меню используется на все сайте. плюс он же идет на это мини меню. Дважды загружать не то. Я поэтому хочу переинициализировать DOM.

Автор: нуп 6.9.2011, 15:48
Я может чего не понимаю, но что вы представляете под 
Цитата(xarakiry @  6.9.2011,  15:38 Найти цитируемый пост)
переинициализировать DOM

Есть дерево, в него надо добавить ноды?! Добавлять надо программно, через вызов функций для дерева, либо создать html код и вызвать конструктор дерева. 

Автор: xarakiry 7.9.2011, 07:53
Хорошо, а как программно добавить ?

Автор: нуп 7.9.2011, 11:28
Читайте доку к дереву, которое используете 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)