AJAX .load url و postback not working

أحضر قسمًا خاصًا (.source_div) من أحد أجزاء موقع الويب الخاص بي إلى قسم آخر (.destination_div) على جزء آخر من موقع الويب الخاص بي باستخدام الكود التالي:

<script type="text/javascript">
$(document).ready(function(){
$('.destination_div').load('http://myurl.mypage.com/something.aspx .source_div');
});
</script>

ومع ذلك ، يحتوي الملف .source_div على روابط تنتقل إلى أجزاء أخرى من موقع الويب الخاص بي. عندما أنقر على هذه الروابط ، أود أن تستمر هذه الصفحات في الظهور داخل نفس بلدي .destination_div الذي أقوم به ، ولا أنزلني إلى صفحة أخرى (وهو ما يفعله حاليًا). على ملاحظة أخرى ذات صلة بسيطة ، لدي أيضًا نموذج داخل .source_div الخاص بي والذي ينفذ إعادة النشر الذي يلحق أيضًا html. هذا لا يعمل داخل بلدي. تحميل إما. لقد نظرت حولي ولا أستطيع معرفة كيفية القيام بأي من هذين الأمرين بشكل صحيح. هل يمكن لشخص ما أن يساعد في إحدى هاتين القضيتين أو كلاهما؟

0
يجب أن تظهر جميع عناوين URL الخاصة بي على النحو التالي: myurl.mypage.com/something. aspx؟ pageID = 12345 والشيء الوحيد الذي يتغير بينهما هو معرف الصفحة في النهاية
وأضاف المؤلف ChiralCenter, مصدر
صيح. الروابط الموجودة في .source_div أخرجني إلى تلك الصفحات ، بدلاً من تحديث .destination_div مع هذا المحتوى الجديد. سأضيف هنا أيضًا أن جميع الصفحات على موقعي تحتوي على .source_div سميت تمامًا بنفس الطريقة.
وأضاف المؤلف ChiralCenter, مصدر
هل الجواب رقم 1 من هذا المنشور هو نوع ما تتحدث عنه؟ stackoverflow.com/questions/1304299/و hellip؛
وأضاف المؤلف ChiralCenter, مصدر
حسنا. هذا الرمز يبدو جيدا. ومع ذلك ، كيف يمكنني تحميل div الأولي في الصفحة؟ الشفرة التي أعطيتني إياها تستمع للنقرات وتحديث القس الذي تم تحميله ، ولكن كيف أقوم أيضًا بتضمين div الأصلي الذي يجب عرضه عند تحميل الصفحة للمرة الأولى؟ الرمز الذي استخدمته أعلاه حقق هذا ، ما هي أفضل طريقة للجمع بينهما؟
وأضاف المؤلف ChiralCenter, مصدر
ثم تأكد من أن روابطك لا تحتوي على نطاقات مضمّنة [مثل href = "http://somedomain.com/somepage.aspx" ] فيها ولا تحتوي على target = "_ blank" سمات.
وأضاف المؤلف Dexter Huinda, مصدر
حسنًا ، على أي حال ، أعتقد أنك كنت تقول ، لقد فشلت طلبات AJAX ، وبالتالي عند النقر على المحتوى يتولى كامل الصفحة بالكامل. هل انا على حق؟
وأضاف المؤلف Dexter Huinda, مصدر
الحق ، ثم تنفيذ حل كيفن B. أدناه. اربط جميع روابطك بحدث النقر الذي يفعل الشيء نفسه في شفرتك أعلاه.
وأضاف المؤلف Dexter Huinda, مصدر
نعم ، إلى حد كبير نفس الشيء ، رمز مختلف ولكن نفس التأثير.
وأضاف المؤلف Dexter Huinda, مصدر
ما عليك سوى إضافة الرمز السابق [الجزء load() فقط قبل معالج click() (راجع الإجابة المحدثة أدناه)
وأضاف المؤلف Dexter Huinda, مصدر

2 إجابة

قم بتفويض حدث إلى كل علامات الربط داخل عنصر destination_div الذي يقوم بتنفيذ نفس الرمز .load ، فقط مع href للرابط المحدد.

http://api.jquery.com/on
http://api.jquery.com/delegate

0
وأضاف

يمكن أن يكون التنفيذ شيء من هذا القبيل.

$(document).ready(function(){
   $('.destination_div').load('http://myurl.mypage.com/something.aspx .source_div');//your page is loaded first
   $('.destination_div').on('click','a',function() {
       var url = $(this).attr("href");
       $('.destination_div').load(url);
       return false;
   });
});​

تعديل: إضافة الرمز السابق الخاص بك

0
وأضاف