#jquery #ajax #history #pushstate #pjax
#jquery #ajax #история #pushstate #pjax
Вопрос:
В моем приложении я использую эту технику:
<body id="action" class="controller">
Есть ли способ отправить pjax вместе с #container
?
Комментарии:
1. Не уверен, что понимаю — отправить что вместе? Что ты пытаешься сделать?
Ответ №1:
Предполагая, что вы используете Rails:
Я не знаю, что вы используете для генерации ответа на стороне сервера. Я использую rack-pjax и смог изменить библиотеку, чтобы установить класс и идентификатор в теле следующим образом:
--- pjax.orig.rb 2012-05-04 22:46:22.000000000 -0700
pjax.rb 2012-05-04 22:46:57.000000000 -0700
@@ -13,6 13,10 @@
headers = HeaderHash.new(headers)
if pjax?(env)
request_parameters = env['action_dispatch.request.parameters']
controller_name = request_parameters[:controller]
action_name = request_parameters[:action]
new_body = ""
body.each do |b|
parsed_body = Hpricot.XML(b)
@@ -22,6 26,13 @@
new_body << title.to_s if title
new_body << container.inner_html
new_body << <<-EOS
<script type="text/javascript">
$('body').removeClass();
$('body').addClass('#{controller_name}');
$('body').attr('id', '#{action_name}');
</script>
EOS
else
new_body << b
end