سؤال

لقد كتبت بعض رمز مسج لاستخدام الرسوم المتحركة "Slideup" عند حذف الصفوف من جدول. من أجل أن تظهر الرسوم المتحركة على نحو سلس، فقد لفت محتويات كل TD في الصف مع علامات DIV، وتسمى وظيفة الشرائح على Divs، وإزالة TDS الفعلي عند الانتهاء من الرسوم المتحركة. الرمز لذلك هو كما يلي:

$("tr[id$=" + rowID + "]").children("td").each(function() {
    $(this).children("div").slideUp(function() {
        $(this).parent().remove();
    });        
});

حتى الان جيدة جدا. ومع ذلك، لاحظت أن هذا الرمز لا يزيل TR الفعلي، فقط محتوياته، لذلك أضفت السطر التالي لإزالة TR:

$("tr[id$=" + rowID + "]").remove();

المشكلة هي أنه بعد أن أضفت الخط أعلاه، تركت الرسوم المتحركة من العمل. وبعبارة أخرى، يختفي الصف ببساطة دون تأثير انزلاق لطيف. هل يعرف أي شخص لماذا هذا هو كذلك وكيفية الوصول إليها؟

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

المحلول

لأنك تزيل tr يحتوي على جميع العناصر المتحركة. لا مزيد من العناصر، لا مزيد من الرسوم المتحركة. بالنظر إلى أن كل من slideUpيجب أن يأخذ S نفس القدر من الوقت، ربما يمكنك الابتعاد عن تغيير رد الاتصال النهائي من $(this).parent().remove() ل $(this).closest('tr').remove().

نصائح أخرى

كتبت مسافة مسج يتيح لك القيام بذلك. يمكنك إضافة وإزالة الصفوف ولا تتطلب التخلص من بياناتك مع DIV أو أي شيء من هذا القبيل. التحقق من ذلك في http://www.fletchzone.com/post/jquery-unobtrusively-animated-add-and-remove-table-rows.aspx.

أفضل،

راجع

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