Я знаю, что ему дали несколько ответов, но я пойду за ним :). Как говорится в заголовке, я хочу добавить загрузочный бутстрап, но с загруженным содержимым ajax. мой html, но я хочу, чтобы сначала появилось сообщение Загрузка, а затем содержимое.Bootstrap popover и загрузка контента с помощью ajax и django
<p class='entry' data-adjaxload = '/calendar/entry/1'>Title1</p>
<p class='entry' data-adjaxload = '/calendar/entry/2'>Title2</p>
<p class='entry' data-adjaxload = '/calendar/entry/3'>Title3</p>
мой взгляд Джанго следующая
def entry_details(request, entry_id):
entry = get_object_or_404(Entry, pk=entry_id)
args = dict(entry=entry, user=request.user)
if request.is_ajax():
return render_to_response('mycal/ajax/entry_details.html', args)
else:
entry_form = EntryForm(instance=entry)
args.update(entry_form=entry_form)
return render_to_response('mycal/entry_details.html', args)
Довольно просто. Я использую тот же вид либо загрузки содержимого HTML с помощью AJAX в пирог, или страница с подробной информацией по обычной просьбе ПОЛУЧИТЬ
подробност страница Аякса:
<div class="entry">
<p>{{entry.title}}</p>
<p>{{entry.date}}</p>
<p>{{entry.customer}}</p>
</div>
и сценарий
$(document).ready(function(){
$('p.entry').each(function(){
var i = $(this);
$(i).bind('mouseenter', function(){
i.popover({
html:True,
title:i.html(),
content:'Loading'
}).popover('show');
$.ajax({
url:i.data('ajaxload'),
dataType:'html',
success:function (data){
i.popover({content:data}).popover('show');
}
});
});
$(i).bind('mouseleave', function(){
i.popover('hide');
});
});
});
Но пока он запускает ajx и извлекает html, он не будет загружать их на popover. Как я могу это изменить?
Поскольку вы уже объявили 'i' как' $ (это) ', вам не нужно инкапсулировать в $ снова. –
Спасибо. Но все еще не решает мою проблему. Но я удалил $ из кода, как вы предложили – Apostolos
Попробуйте удалить '.popover ('show')', так как вызов 'popover ({options})' покажет popover тем не менее. –