jQuery ، كيفية تحميل محتوى Ajax بعد عنصر محدد
سؤال
أحتاج إلى تحميل بعض محتوى Ajax بعد الحقول مع عنوان الفصل. باستخدام الكود أدناه سيحل محل محتوى.
$('.accordion .head').click(function() {
$(this).next().find('.address').after().load('http://test.dev/search/view/IdDaytrip/' + $(this).attr('id') + '.html');
$(this).next().toggle('slow');
return false;
}).next().hide();
<div style="display: none;">
<fieldset class="address">
<!-- AJAx CONTENT GOES HERE -->
<ol>
<li>Stadhouderskade 78</li>
<li> Amsterdam-Zuid</li>
<li>020-5239666</li>
</ol>
</fieldset>
<!-- BUT THE AJAx CONTENT NEEDS TO GO HERE -->
<span class="tags">Tags: museum</span>
</div>
المحلول
عادة ما أفعل ذلك بهذه الطريقة:
var clicked = $(this);
$.get('http://test.dev/search/view/IdDaytrip/' + $(this).attr('id') + '.html',
function(data){
alert("Data Loaded: " + data);
$(clicked).next().find('.address').after(data);
});
نصائح أخرى
هذا يجب أن يعمل ..
$('.accordion .head').click(function() {
$next = $(this).next();
$.get('http://test.dev/search/view/IdDaytrip/' + $(this).attr('id') + '.html',
function(data){
$next.find('address').after( data );
}
).end().toggle('slow');
return false;
}).next().hide()
فعلا after
يتطلب الكائن لإلحاقه بعد عنصر معين. عندما تتصل
$(this).nex().find('addresss').after()
لقد تم إرجاع الإشارة إلى:
'address' + [content appended by `after`]
لأننا لم نمنح أي شيء after
تعمل على إلحاق عنوان لذلك ما زلنا ندعو load
تشغيل $('.address')
.
استخدم هذا البرنامج النصي بدلاً من ذلك:
$('.accordion .head').click(function() {
$(this).next().find('.address').after($("div/>")
.load('http://test.dev/search/view/IdDaytrip/' +
$(this).attr('id') + '.html'));
$(this).next().toggle('slow');
return false;
}).next().hide();
هذا يخلق جديد div
لالتفاف محتوى Ajax وإظهاره بالطريقة الصحيحة.
لا تنتمي إلى StackOverflow