deleted-Saldacenkaw
@deleted-Saldacenkaw

Position:fixed; после serialize()?

Возникла небольшая проблема. Есть страница, где форма отправляется таким вот кодом:

$(function(){<br/>
 $('.add-form &gt; form').submit(function(){<br/>
 var thisForm = $(this);<br/>
 var url = thisForm.attr('action');<br/>
 var url = url.substr(0,url.indexOf('#'));<br/>
 var data = thisForm.serialize()+'&add=1';<br/>
 $.post(url, data, function(content){<br/>
 $('body').html(content);<br/>
});<br/>
 return false;<br/>
 });<br/>
<br/>
});




на странице есть элемент, который при скроле получает position:fixed; c помощью



$(function() {<br/>
 var div = $('#fixed-top');<br/>
 var start = $(div).offset().top;<br/>
 $.event.add(window, &quot;scroll&quot;, function() {<br/>
 var p = $(window).scrollTop();<br/>
 $(div).css('position',((p)&gt;start) ? 'fixed' : 'static');<br/>
 $(div).css('top',((p)&gt;start) ? '0px' : '');<br/>
 });<br/>
 <br/>
});




Соотв. при отправке формы фиксированный элемент скрывается. Подскажите пожалуйста, как этого можно избежать? Спасибо!
  • Вопрос задан
  • 2536 просмотров
Пригласить эксперта
Ответы на вопрос 2
Desiderata
@Desiderata
Я могу ошибаться, но судя по всему проблема в этой строке:
$('body').html(content);

Попробуйте её исправить на
$('body').append(content);
Ответ написан
Desiderata
@Desiderata
Обновление нескольких блоков через Ajax можно реализовать следующим способом:
$.post(url, data, function(content)
{
	// данные от сервера должны приходить в формате JSON (т.е. {"header":"код внутри блока header", "section":"код внутри блока section"})
	$('header').html(content.header);
	$('section').html(content.section);
	
	// если переписать код на сервере не представляется возможным, то придется вытаскивать нужные данные из content с помощью регулярок
	// var header = /<header>(.+)<\/header>/gi.exec(content);
	// var section = /<section>(.+)<\/section>/gi.exec(content);
	// $('header').html(header[1]);
	// $('section').html(section[1]);
}, 'json');
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы