Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.04.2017, 18:40
Интересующийся
Отправить личное сообщение для polearmik Посмотреть профиль Найти все сообщения от polearmik
 
Регистрация: 26.10.2014
Сообщений: 21

Выполнение функции после выдачи результата AJAX запроса
Всем привет!
Выручайте форумчане есть AJAX запрос который выводит результат в определенный блок и следом идет функция плавного наведения на этот блок для удобства пользователя. Реализовал с помощью setTimeout но работает коряво, у разных пользователей вывод информации в этот блок занимает разное время, поэтому хотелось бы сделать чтоб функция выполнялась после вывода результата AJAX запроса. Думаю надо копать в сторону ajaxComplete но так вообще не работает.
Сам код:
$(document).ready(function(){
	$("a[href*=#]").bind("click", function(e){
		$('.loadtrek').fadeIn();
		var msg   = $('#form').serialize();
        $.ajax({
          type: 'POST',
          url: 'php_client1.php',
          data: msg,
          success: function(data) {
            $('#trekerresult').html(data),
			$('#form').find('input[type=text], textarea').val('');
          },
          error:  function(xhr, str){
	    alert('Повторите ввод');
          }
        });
		var anchor = $(this);
		var name = anchor.attr("href").replace(new RegExp("#", "gi"), "");
		setTimeout(function () {
		$('html, body').stop().animate({
			scrollTop: $("a[name=" + name + "]").offset().top
		}, 500);
		},550);
		e.preventDefault();
		return false;
	});
	
});
Ответить с цитированием
  #2 (permalink)  
Старый 20.04.2017, 20:38
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,807

Я искренне не понимаю почему нельзя произвести скролл сразу после внесения изменений в #trekerresult.

$(function(){
	$("a[href*=#]").bind("click",function(e){
		e.preventDefault();
		
		var $form=$('#form'),
			$anchor=$('a[name="'+$(this).attr('href').replace('#','')+'"]');
		$.post('php_client1.php',$form.serialize(),function(response){
			$('#trekerresult').html(response);
            $form.find('input[type="text"],textarea').val('');
			if($anchor.size()>0)
				$('html,body').stop(true).animate({
					scrollTop:$anchor.offset().top
				},500);
		}).error(function(xhr){
			if('console' in window && 'log' in console)
				console.log(xhr)
				
			alert('Повторите ввод');
		});
	});
});
Ответить с цитированием
  #3 (permalink)  
Старый 22.04.2017, 14:48
Интересующийся
Отправить личное сообщение для polearmik Посмотреть профиль Найти все сообщения от polearmik
 
Регистрация: 26.10.2014
Сообщений: 21

Хмм.. Ну как вариант можно и так обойтись, благодарствую
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Действие после выполнение Ajax запроса paveltkachev jQuery 23 25.12.2014 06:33
после ajax запроса не работает перемещение. Scotti AJAX и COMET 3 31.10.2013 14:26
onclick прервать выполнение функции wgt Events/DOM/Window 4 30.04.2013 20:52
Проблема с событиями после ajax запроса Mirgorod AJAX и COMET 5 12.06.2010 18:24
Сохранение результата ajax запроса после нажатия 'back' gregOlsen AJAX и COMET 5 18.11.2009 12:23