سؤال

لدي وظيفة قصيرة من المفترض أن تظهر الرسائل على موقع الويب.

function showHint() { 
    $('#notify').html('message text').show('slide', {direction: 'right'}, 500);
}

وهناك وظيفة أخرى لإخفاء الرسائل.

function hideHint() { 
    $('#notify').hide('slide', {direction: 'right'}, 500);
}

المشكلة هي أنه إذا قمت باستدعاء هذه الوظيفة أكثر من مرة فإنها تحاول إظهار جميع الرسائل في نفس الوقت ويتعطل كل شيء.أريد استدعاء الوظيفة مرتين وبعد ذلك يجب أن تقوم بوضع الرسوم المتحركة في قائمة الانتظار وإظهار رسالة تلو الأخرى.يجب استدعاء الدالة أكثر من مرة في نفس الوقت ولكن إظهارها واحدة تلو الأخرى.يجب أن تظهر الرسالة التالية عندما يختبئ التنوب.

كيف يمكنني حل المشكلة؟سيكون جميلا!

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

المحلول

إليك مكونًا إضافيًا صغيرًا مخصصًا استخدمته في الماضي والذي يربط مجموعة من الرسوم المتحركة واحدة تلو الأخرى.

// Good for serializing animations
$.fn.chain = function(fn) {
  var elements = this;
  var i = 0;
  function nextAction() {
    if (elements.eq(i)) fn.apply(elements.eq(i), [nextAction]);
    i++;
  }
  nextAction();
};

يمكنك تسميتها هكذا (وهنا مثال على ذلك قيد الاستخدام):

$(document).ready(function() {
  $('li').chain(function(nextChain) { this.slideToggle("fast", nextChain); });
});

الوظيفة التي تنتقل إليها chain يمرر وظيفة أخرى يجب عليك الاتصال بها عند انتهاء دورة واحدة.في المثال أعلاه، نقوم فقط بتمرير nextChain تعمل كرد اتصال لـ slideToggle.

نصائح أخرى

وظيفة showhint لديك يمكن أن يبدأ فقط عن طريق إخفاء الإخطار وعند ذلك اكتمال الاستدعاء سيكون ما هي وظيفة showhint القائمة، من شأنها أن تغير النص وإظهار ذلك. يجب كود لن يكون صعبا بالنظر إلى ما قمت به بالفعل.

ويمكنك ليس فقط استخدام البرنامج المساعد الإخطار؟ هنا هما ( واحد و <لأ href = "HTTP: // jnotifica.lenonmarcel.com.br/ "يختلط =" نوفولو noreferrer "> اثنين ) التي هي أنيق وجميل.

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