۱ میلاد صادقیان
مشکل باقی ماندن پیغام‌های قبلی notify
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۰۹ شهریور ۱۴۰۱

سلام. وقت بخیر

اواخر ویدیو استاد فرمودن که با نوشتن کد زیر پیغام محو میشه :

notify.delay(5000).hide(300);

پیغام notify بعد از چند ثانیه محو میشه ولی وقتی دوباره روی دکمه لاگین کلیک میکنم همچنان پیغام قبلی باقی میمونه و پیغام جدید و هم پایینتر نشون میده که نباید اینجوری باشه. در واقع باید بعد از چند ثانیه پیغام برای همیشه محو بشه و پیغام جدید جایگزین قبلی بشه.

مشکل از چیه؟ چجوری میتونم این باگ و فیکس کنم؟؟؟

سورس کد پروژه هم پیوست شد

سلام و وقت بخیر

در درخواست ajax که از سمت افزونه شما ارسال میشود شما در هر پاسخ سرور مقداری را به کلاس alert خودتان append می‌کنید ولی در درخواست بعدی آنهارا پاک نمی‌کنید در این صورت متن ارور‌ها درون تگ خطاهای شما تجمیع می‌شوند. خط زیر

notify.append('<p>' + message + 'p>');

append کردن معنای چسباندن یا اضافه کردن به اخر محتوا را می‌دهد، یعنی متن ارور من رو به div با کلاس alert اضافه کن - معنای جایگزینی ندارد!

برای حل مشکل دو راه حل وجود دارد که هر دو مورد ذکر می‌کنم:

1- بعد از محو شدن اخطار آن را خالی کنید:

notify.delay(5000).hide(300).queue(function(){notify.empty()});

2- در هر بار ارسال ریکوست ایجکس قبل از ارسال شدن ان موارد را ریست کنید:

beforeSend: function (){
    notify.empty();
},

اگر نمی‌دانید beforeSend چیست، گوگل کنید .ajax beforesend

موفق باشید?

بهترین پاسخ
بهنام مرادی ۰۹ شهریور ۱۴۰۱، ۱۴:۱۴