ورود

View Full Version : خطا در اجرای کدهای JQuery داخل PartialView



leila.net
چهارشنبه 21 آبان 1393, 10:43 صبح
با سلام
من چندتا PartialView دارم که از طریق Ajax و با کلیک کاربر قرار هست به محتوای صفحه ام اضافه بشن. خب PartialView ها به صفحه اضافه می شن ولی داخل این PartialView ها هم من یکسری کد JQuery قرار هست اجرا بشه ولی این کدها، در اجرای درخواست ها بعضا درست کار می کنن و بعضا با خطای زیر اجراشون متوقف میشه :



Error: cannot call methods on button prior to initialization; attempted to call method 'toggle'


و البته جالب تر اینکه رو لوکال کار میکنه ولی بعد از آپلود :ناراحت: دیگه از کار میافته :اشتباه:

تا حالا کسی با این خطا مواجه شده ؟ راه حل چی هست؟
به نظرتون چه عاملی می تونه باعث شه کدهای jquery داخل PartialView تو لوکال درست کارکنن ولی بعد از آپلود کار نکنن ؟

jalalx
چهارشنبه 21 آبان 1393, 13:36 عصر
ممکنه آدرس ها توی سرور درست نباشن. مطمئن شو پوشه های Scripts یا js توی سرور دقیقا مشابه توی local هست. بهترین راه اینه که پروژه رو publish بگیری توی یه پوشه توی کامپیوترت بعد آپلود کنی یا مستقیما موقع publish تنظیمات سرور رو وارد کنی.
اینجا روش های متنوعی رو معرفی کرده:
http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html

و این یکی رو هم یه نگاهی بنداز
http://weblogs.asp.net/scottgu/vs-2010-web-deployment

leila.net
چهارشنبه 21 آبان 1393, 13:41 عصر
ممکنه آدرس ها توی سرور درست نباشن. مطمئن شو پوشه های Scripts یا js توی سرور دقیقا مشابه توی local هست. بهترین راه اینه که پروژه رو publish بگیری توی یه پوشه توی کامپیوترت بعد آپلود کنی یا مستقیما موقع publish تنظیمات سرور رو وارد کنی.
اینجا روش های متنوعی رو معرفی کرده:
http://vishaljoshi.blogspot.com/2009/09/overview-post-for-web-deployment-in-vs.html

و این یکی رو هم یه نگاهی بنداز
http://weblogs.asp.net/scottgu/vs-2010-web-deployment

نه فایل ها درست کپی شدن و مشکلی تو پابلیش هم ندارم ، که اگه همچین مشکلی بود firebug نشون میداد خطا رو!!!
محض اطمینان راه حل شما رو هم قبلا تست کردم و بعد از publish پروژه ، همه فایل ها رو آپلود کردم ولی همچنان مشکل حل نشد.:اشتباه:

jalalx
چهارشنبه 21 آبان 1393, 13:52 عصر
پس بهتره کد های PartialView و _Layout رو بذاری. همینطور تکه کدهایی که خطا داره.

jalalx
چهارشنبه 21 آبان 1393, 14:47 عصر
دو نکته دیگه این که کدهای جاوا اسکریپ و ارجاع ها به فایل های جاوا اسکریپت رو به انتهای صفحه دقیقا قبل از جایی که تگ body می خواد بسته بشه منتقل کنید. نکته دوم همیشه اول به فایلهای jquery ارجاع بدین بعد به فایل های bootstrap. چون خود bootstrap و احتمالا افزونه هاش به jquery نیاز دارند.

اینجا یک نفر به خطای مشابه شما خورده و همین راه حل براش جوابگو بوده: http://stackoverflow.com/questions/13235578/bootstrap-radio-buttons-toggle-issue

leila.net
چهارشنبه 21 آبان 1393, 15:14 عصر
دو نکته دیگه این که کدهای جاوا اسکریپ و ارجاع ها به فایل های جاوا اسکریپت رو به انتهای صفحه دقیقا قبل از جایی که تگ body می خواد بسته بشه منتقل کنید. نکته دوم همیشه اول به فایلهای jquery ارجاع بدین بعد به فایل های bootstrap. چون خود bootstrap و احتمالا افزونه هاش به jquery نیاز دارند.

اینجا یک نفر به خطای مشابه شما خورده و همین راه حل براش جوابگو بوده: http://stackoverflow.com/questions/13235578/bootstrap-radio-buttons-toggle-issue

یه مسئله ای که من قبلا بهش برخوردم این بود که وقتی از Layout استفاده می کردم و Reference هام رو به آخر صفحه اضافه می کردم توی اجرای request های Ajax و Jquery که تو Partial باید اجرا می شد با خطا مواجه شدم برا همین هم قبل تگ script لینک فایل jquery رو بهش اضافه کردم و بعد کدهام بدون خطا اجرا شد. وقتی از Partial استفاده می کنم با این توضیحات که من دادم طبیعتا موقع اجرا یکسری کدهای script داخل تگ body قرار می گیرن مگر اینکه روش من اشتباه باشه !!!

fatima_h66
چهارشنبه 21 آبان 1393, 15:20 عصر
این پارشیال ها چه کاربردی دارند؟
من آخر نفهمیدم! :گریه:

leila.net
چهارشنبه 21 آبان 1393, 16:12 عصر
اینجا یک نفر به خطای مشابه شما خورده و همین راه حل براش جوابگو بوده: http://stackoverflow.com/questions/13235578/bootstrap-radio-buttons-toggle-issue
خطایی که فکر می کردم عدم اجرای کدهای jquery بخاطر اون هست با راه حلی که تو صفحه بالا گفته بودن حل شد !!!

ولی من باز هم مشکل عدم اجرای Script هایی که تو Partial هستن و با ajax لود میشن رو دارم !

leila.net
چهارشنبه 21 آبان 1393, 16:15 عصر
و تشکر به خاطر راهنمایی دوستان ...
درسی که امروز من گرفتم اینکه گاها ترتیب Reference هایی که می دیم خیلی مهمه و گاها می تونه به خطاهایی منجر بشه که راه حلش به فکر هیچ احدالناسی نرسه !!!
بالاخره مسائلی که تو صفحاتم وجود داشتن با جابجایی Rerence های .js ام حل شد.

RIG000
چهارشنبه 21 آبان 1393, 16:44 عصر
این پارشیال ها چه کاربردی دارند؟
من آخر نفهمیدم! :گریه:
این یه partial هست که تو لایوتم فراخونی کردم....
اگه این کار رو نکنم باید تو همین لایوت بنویسمش! حالا اگه لایوت رو رو ویو هایی که مدل توشون هست پیاده سازی کنم میشه مدل رو مدل که اونوقت دو مدل در یک لایوت یا ویو نمیشه !!!
پس جدا از اینکه پارشیال همه چیز رو جدا میکنه و جدا سازی انجام میده .... خطای مورد نظر رو هم می پوشونه ... این فراخونی یک پارشیال تو لایوت هستش...

@Html.Partial("~/Views/User/_Partial/_PartialLoginUser.cshtml", new CodeNevis.ViewModel.LoginUser())