Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.09.2010, 14:30
Новичок
Отправить личное сообщение для inGray Посмотреть профиль Найти все сообщения от inGray
 
Регистрация: 03.08.2010
Сообщений: 230

Сообщение от B@rmaley.e><e Посмотреть сообщение
var data = $(data); // data - ответ от сервера
$('div.xyz', data).appendTo(div1); // div1 - куда будем вставлять div.xyz
data.appendTo(div2); // div2 - куда будем вставлять все остальное.
Тогда так
__________________
Не хочешь, чтобы тебя послали? Не спрашивай куда идти.
Ответить с цитированием
  #12 (permalink)  
Старый 07.09.2010, 16:11
Интересующийся
Отправить личное сообщение для ekkl Посмотреть профиль Найти все сообщения от ekkl
 
Регистрация: 16.10.2009
Сообщений: 29

Что-то не работает.
...function(data)
            {
                var sret = $(data);
                $('h2', sret).appendTo('#dh2');
                $('#ajaxload').stop().fadeOut(500);
               // $(sret).appendTo('#ajaxcontent');
                $('#ajaxcontent').stop().fadeIn(500);}...

Ровным счетом ничего не происходит.
Во-вторых, appendTo добавляет данные, к уже имеющимся, а мне нужно замещать.
Смотрел по доккументации функцию replaceAll но она не произвдит никаких видимых изменений.
Ответить с цитированием
  #13 (permalink)  
Старый 07.09.2010, 16:35
Новичок
Отправить личное сообщение для inGray Посмотреть профиль Найти все сообщения от inGray
 
Регистрация: 03.08.2010
Сообщений: 230

А полностью код обработчика покажите? И то что в data ajax-ом возвращается?

По поводу замещения.. сначала почистите содержимое, а затем вставьте нужное.
__________________
Не хочешь, чтобы тебя послали? Не спрашивай куда идти.

Последний раз редактировалось inGray, 07.09.2010 в 16:44.
Ответить с цитированием
  #14 (permalink)  
Старый 07.09.2010, 17:51
Интересующийся
Отправить личное сообщение для ekkl Посмотреть профиль Найти все сообщения от ekkl
 
Регистрация: 16.10.2009
Сообщений: 29

function loadform(a)
    {$.ajax({url:a['href'],beforeSend:function(){opendlg();$('#ajaxload').fadeIn(500);$('#ajaxcontent').hide();},success:
                function(data)
            {
                var sret = $(data);
                $('h2', sret).appendTo('#dh2');
                $('#ajaxload').stop().fadeOut(500);
                $(sret).appendTo('#ajaxcontent');
                $('#ajaxcontent').stop().fadeIn(500);}})}


<div class="popup" id="dialog" style="display:none; z-index:10000">
    <div id="dh2">&nbsp;</div>
    <div id="ajaxload">
        <div style="text-align:center">
            <?= image('ajaxload') ?>
            <br clear="all" /><br clear="all" />
            <h3>Пожалуйста подождите, идет обработка данных........</h3>
        </div>
    </div>
    <div id="ajaxcontent">

    </div>
</div>

А возвращаем мы, к примеру, это
<h2>create tags</h2>
<script type="text/javascript">
    $().ready(function() {

        // validate signup form on keyup and submit
        $("#tag").validate({
            submitHandler: function(){formgears('#tag');}});
    })
</script>

<form action="<?= part_url('edt/savetags.htm') ?>" method="POST" id="tag">
    <div class="field">
        <?= form_labelinput('title', $title , 'tag_title') ?>
    </div>....

Кстати,
$(sret).appendTo('#ajaxcontent');
Работает. но
$('h2', sret).appendTo('#dh2');
НЕТ.
Пробовал вставлять все, потом вырезать - так работает, но как-то некрасиво.

Последний раз редактировалось ekkl, 07.09.2010 в 17:53.
Ответить с цитированием
  #15 (permalink)  
Старый 07.09.2010, 19:12
Интересующийся
Отправить личное сообщение для ekkl Посмотреть профиль Найти все сообщения от ekkl
 
Регистрация: 16.10.2009
Сообщений: 29

Странно.
$('.field', sret).appendTo('#dh2');
работает.
Если весь кусок возвращаемого кода "обернуть" в div тогда все нормально.
Почему так?
<div>
<h2>create tags</h2>
<script type="text/javascript">
    $().ready(function() {

        // validate signup form on keyup and submit
        $("#tag").validate({
            submitHandler: function(){formgears('#tag');}});
    })
</script>

<form action="<?= part_url('edt/savetags.htm') ?>" method="POST" id="tag">

    <div class="field">
        <?= form_labelinput('title', $title , 'tag_title') ?>
    </div>
    <div class="field">
        <?= form_labelinput('tag', $tag, 'tag_tag') ?>
        <div class="notice"><?= lang('tag_not_required') ?></div>
    </div>
    <h4><?= lang('tag_descrypt') ?></h4>
    <div class="field">
        <textarea name="descr" rows="4" cols="20" id="descr"><?= $descrbb ?></textarea>
    </div>
    <h4><?= lang('acces_permission') ?></h4>
    <div class="field">
        <?= lang('user_group', 'usergroup'); ?>
        <?= form_dropdown('usergroup', $usergroup, $permission, 'id="usergroup"')  ?>
    </div>
    <div class="right field">
        <?= form_hidden('id', $id) ?>
        <?= form_hidden('oldtag', $oldtag) ?>
        <?= form_hidden('oldtitle', $oldtitle) ?>
        <?= $this->gears->submit('create') ?>
    </div>
</form>
<script type="text/javascript">
    SMarkUp.bind(
    'descr', //textarea id
    'bbcode', //makup configuration name
    120		//height of textarea
);
</script>
</div>
Ответить с цитированием
  #16 (permalink)  
Старый 07.09.2010, 19:16
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Потому что используя
Сообщение от ekkl
$('h2', sret)
Вы выбираете дочерний узел h2. А он у вас на "нулевом" уровне, т.е. в коллекции $(sret); Поэтому в случае <h2><h2>Content</h2></h2> выбралась бы только внутренняя часть.
Используйте
$(sret).filter('h2');
Ответить с цитированием
  #17 (permalink)  
Старый 07.09.2010, 23:04
Интересующийся
Отправить личное сообщение для ekkl Посмотреть профиль Найти все сообщения от ekkl
 
Регистрация: 16.10.2009
Сообщений: 29

Кстати,
function(sr)
            {
                data = $(sr);
                $('#dh2').empty();
                $('#ajaxcontent').empty();
                $('#dlgfooter').empty();
                $(data).filter('h2').appendTo('#dh2');
                $(data).filter('.sitefooter').appendTo('#dlgfooter');
                $('#ajaxload').stop().fadeOut(500);
                $(data).appendTo('#ajaxcontent');
                $('#ajaxcontent').stop().fadeIn(500);}})}
тоже не работает.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление страницы после получения ответа от сервера potrashitel AJAX и COMET 9 24.02.2015 10:04
Манипуляции с DOM в обработчике DOMSubtreeModified TheDeadOne jQuery 1 20.06.2010 09:59
Ответ сервера в плугине ajaxForm отдается неправильно. IgorOk jQuery 11 13.12.2009 04:35
Работа с DOM на стороне сервера AlexAndreev Серверные языки и технологии 7 27.05.2009 21:39
передача массива с сервера subaru Общие вопросы Javascript 3 02.07.2008 19:57