سؤال

وأواجه مشكلة صغيرة مع هذا الإعداد هنا لدي قائمة من الملفات .ascx وأنهم جميعا القيام بمهام مختلفة من حيث العمليات الحسابية إلى وحدة تحكم نفسها. لذلك على صفحة .aspx بلدي I انقر على Ajax.ActionLink() وهذا سيجعل هذا الملف .ascx محددة على أساس البند الأول بالضغط. ضمن هذا .ascx و1-3 الأحداث التي سوف النار 2 منهم أحداث onclick و1 غير onload. الحدث onclick (ق) هي أسهل للعمل مع من حيث يمكنني ترميز ثابت للمباشرة في حال الضوابط مثل ذلك onclick="$("#toggleMe3").slideToggle("slow");" وonload يجب أن تعمل عندما يتم تحميل .ascx كنت في اختبار هذا في مكالمة $(document).ready(function(){});، وهذا يعمل بشكل جيد في الصفحة .aspx ولكن بمجرد ان أحاول إضافته إلى الصفحة .aspx أنه لا يحمل ومثالية لها أن هذا يعمل ولكن ليس لدي فكرة لماذا لا. في الواقع لا شيء في علامات البرنامج النصي العمل إذا أنا أدخل مباشرة في صفحة .ascx أنها تعمل فقط إذا ضمنية إلى أحداث عنصر التحكم، وأيضا بعض منهم على الأقل؛ وonload وonprerender لا اطلاق النار.

هل كانت مفيدة؟

المحلول

وكان لي نفس المشكلة، بعد النصي إعادة النشر الجزئي المحدد في $ (الوثيقة) لم ينفذ .ready. لقد وجدت الحل هنا MSDN - PageRequestManager الدرجة

ويبدو مثل إضافة برنامج نصي مثل أدناه إصلاح المشكلة

<script type="text/javascript">
  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction);
</script>

نصائح أخرى

ولقد كان نجاح استخدام $ (الوثيقة) .ready في جزئيات لي أن الحصول على تحميل عبر XHR. هي وجهات النظر التي كنت تحميل عبر XHR رمي استثناءات جافا سكريبت؟ أو أنها لا تحتوي على HTML تالف؟

وأنا عادة يكون لي $ (الوثيقة) طريقة .ready في الجزء السفلي من بلدي جزئية أنني تحميل عبر اياكس، مثل ...

<script type="text/javascript">
$(document).ready(function(){ callMyFunction(); });
</script>

وكان لدي صعوبة في فهم سؤالك ... ولكن هنا غني.

إذا كنت تقوم بتحميل التاريخ باستخدام يدعو AJAX، لن النار الحدث $ (الوثيقة) .ready () - لأن الصفحة تم تحميل بالفعل. كنت مجرد تحميل المزيد من البيانات الآن.

إذا كنت تعرف الضوابط ما فسيظهر، قبل تحميل جافا سكريبت، ولكن بدلا من الربط فقط باستخدام معالج الحدث انقر فوق، استخدم معالج الحي.

وهكذا

$("#myControl").click(....);

ويتحول إلى

 $("#myControl").live("click", ....);

وعذرا إذا لم يكن هذا ما كنت أبحث عنه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top