Abdullah Baaqail نشر 4 مارس أرسل تقرير نشر 4 مارس إضافة لهذه المشكلة اقتباس عند عمل update للصورة تتغير القيم في ال index لكن عند فتح modal عرض الصورة تجد أن قيمة الصورة القديمة لاتزال موجودة في ال modal وبد إضافة الصورة الجديدة وهذا show_image.blade.php <div class="modal fade" id="image_modal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="image_modal" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content modal-content-maps-images"> <div class="modal-header"> <h4 class="modal-title" id="delete_header">عرض المحتوى</h4> <i type="reset" data-bs-dismiss="modal" aria-label="Close" class="las las la-times text-danger scale5 cancel-modal"></i> </div> <div class="modal-body p-0"> <div style="overflow: auto; height: 500px;"> <embed id="image_src" width="100%" style="min-height: 500px; object-fit: contain;"/> </div> </div> </div> </div> </div> وهذا show_image.js $(document).on("click", ".show-image-modal", function () { if ($(this).data('type_media') === "video") { $("#video_src").attr("src", $(this).data('video_url')); $("#image_src").hide(); $("#view_media_card_footer").show(); } else { $("#view_media_card_footer").hide(); $("#image_src").show(); $("#image_src").attr("src", $(this).data('image_url')); } $("#image_modal").modal("show"); }); وهذا row.blade.php الذي يفتح ال modal <td> <button type="button" value="" data-title="المسكن"data-image_url="{{ Storage::url($hotel->contract) }}" class="show-image-modal dropdown-item" style="padding: 0;height: 33px;"> <i class="mdi mdi-file-document-outline" style="font-size: 25px; color: rgb(92, 88, 88);"></i> </button> </td> 1 اقتباس
1 محمد عاطف17 نشر 4 مارس أرسل تقرير نشر 4 مارس بتاريخ 12 دقائق مضت قال Abdullah Baaqail: القمية قبل وبعد التعديل نفسها كما توقعت . بالفعل هذه مشكلة فى jqeury حيث ان jquery فى اول مرة يتم استدعاء الدالة data للعنصر فانه يقوم بحفظها لديه و اذا تم التعديل عليها فان jquery لا يشعر بهذا التعديل اذا كان تم التعديل عليها بدونه . لذلك فانه عندما يقوم livewire باعادة بناء العنصر فان jquery لا يلاحظ انه تم تغير ال data-image_url لذلك الحل هو ان تقوم باستبدال السطر لديك بهذا السطر. $("#image_src").attr("src", $(this).attr('data-image_url')); او يمكنك اضافة هذا السطر فى بداية الدالة حيث يجعل jquery يقوم بحذف ال data التى قام بحفظها مسبقا . وبذلك يقوم بانشائها مجددا عن اول مرة اخرى يتم استخدامها. $(document).on("click", ".show-image-modal", function () { $(this).removeData(); if ($(this).data('type_media') === "video") { $("#video_src").attr("src", $(this).data('video_url')); $("#image_src").hide(); $("#view_media_card_footer").show(); } else { $("#view_media_card_footer").hide(); $("#image_src").show(); $("#image_src").attr("src", $(this).data('image_url')); } $("#image_modal").modal("show"); }); اقتباس
0 محمد عاطف17 نشر 4 مارس أرسل تقرير نشر 4 مارس بتاريخ 2 ساعة قال Abdullah Baaqail: وهذا row.blade.php الذي يفتح ال modal هل تاكدت من ان هذا الزر يتم اعادة بناءه عند عمل update للصورة ؟ لانه من المتوقع ان المشكلة فى هذا الزر حيث يحتفظ بقيمة الصورة القديمة فى data-image_url . اذا كانت تلك المشكلة فيجب ان يتم اعادة بناء الزر عند التغير حيث يمكنك انشاء حدث يسمح باعادة بناء الزر . اذا لم يتم حل المشكلة هل يمكنك ارسال ملفات المشروع اقتباس
0 Abdullah Baaqail نشر 4 مارس الكاتب أرسل تقرير نشر 4 مارس بتاريخ 6 دقائق مضت قال محمد_عاطف: هل تاكدت من ان هذا الزر يتم اعادة بناءه عند عمل update للصورة ؟ لانه من المتوقع ان المشكلة فى هذا الزر حيث يحتفظ بقيمة الصورة القديمة فى data-image_url . اذا كانت تلك المشكلة فيجب ان يتم اعادة بناء الزر عند التغير حيث يمكنك انشاء حدث يسمح باعادة بناء الزر . اذا لم يتم حل المشكلة هل يمكنك ارسال ملفات المشروع عند عمل تحديث للصورة فإن القيمة الجديدة تظهر في الزر مثل هذا ولكن لاتظهر في ال modal هل هكذا يتم اعادة بناء الزر $(document).on("click", ".show-image-modal", function () { document.getElementById('image_and_pdf').dispatchEvent(new Event('button')) //render the button if ($(this).data('type_media') === "video") { $("#video_src").attr("src", $(this).data('video_url')); $("#image_src").hide(); $("#view_media_card_footer").show(); } else { $("#view_media_card_footer").hide(); $("#image_src").show(); $("#image_src").attr("src", $(this).data('image_url')); } $("#image_modal").modal("show"); }); مع إضافة id لل button <td> <button id="image_and_pdf" type="button" value="" data-title="المسكن"data-image_url="{{ Storage::url($hotel->contract) }}" class="show-image-modal dropdown-item" style="padding: 0;height: 33px;"> <i class="mdi mdi-file-document-outline" style="font-size: 25px; color: rgb(92, 88, 88);"></i> </button> </td> اقتباس
0 محمد عاطف17 نشر 4 مارس أرسل تقرير نشر 4 مارس بتاريخ 20 دقائق مضت قال Abdullah Baaqail: عند عمل تحديث للصورة فإن القيمة الجديدة تظهر في الزر مثل هذا هل يظهر اى اخطاء فى ال console ؟ هل يمكنك اضافة هذا السطر لطباعة قيمة ال image_url واخبرنى هل القيمة الجديدة التى يتم طباعتها فى ال console ام القيمة القديمة. $(document).on("click", ".show-image-modal", function () { if ($(this).data('type_media') === "video") { $("#video_src").attr("src", $(this).data('video_url')); $("#image_src").hide(); $("#view_media_card_footer").show(); } else { console.log($(this).data('image_url')); $("#view_media_card_footer").hide(); $("#image_src").show(); $("#image_src").attr("src", $(this).data('image_url')); } $("#image_modal").modal("show"); }); اقتباس
0 Abdullah Baaqail نشر 4 مارس الكاتب أرسل تقرير نشر 4 مارس القمية قبل وبعد التعديل نفسها وعند عمل تحديث للصفحة تصبح القيمة هكذا اقتباس
السؤال
Abdullah Baaqail
إضافة لهذه المشكلة
عند عمل update للصورة تتغير القيم في ال index لكن عند فتح modal عرض الصورة تجد أن قيمة الصورة القديمة لاتزال موجودة في ال modal
وبد إضافة الصورة الجديدة
وهذا show_image.blade.php
وهذا show_image.js
$(document).on("click", ".show-image-modal", function () { if ($(this).data('type_media') === "video") { $("#video_src").attr("src", $(this).data('video_url')); $("#image_src").hide(); $("#view_media_card_footer").show(); } else { $("#view_media_card_footer").hide(); $("#image_src").show(); $("#image_src").attr("src", $(this).data('image_url')); } $("#image_modal").modal("show"); });
وهذا row.blade.php الذي يفتح ال modal
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.