سؤال

    this.randomtip = function(){
        var length = $("#showcase ul li").length;
        var ran = Math.floor(Math.random()*length) + 1;
        $("#showcase ul li:nth-child(" + ran + ")").show();
    };
    randomtip();

.. الرمز أعلاه يعمل بشكل جيد مع .show() في النهاية، ولكن إذا قمت بتغييره إلى .addClass('show') لن يعمل.

أود أن أعطيه فئة بدلا من ذلك float:left الممتلكات للجميع li العناصر بدلا من الافتراضي display:list-item. وبعد كيف يمكنني حل هذه المشكلة؟

شكرا!

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

المحلول

بعد إجابة الأردن:

يمكنك استبدال display:none من li ثم أضف الفصل هذه الطريقة:

$("#showcase ul li:nth-child(" + ran + ")").css('display','').addClass('show');

نصائح أخرى

كيف تخفي العنصر في المقام الأول؟ إذا كنت تحددها display: none, على سبيل المثال، أو استخدام إخفاء JQuery ()، والذي يقوم بنفس الشيء، ثم يؤدي ذلك إلى تجاوز CSS محددة في مكان آخر والحفاظ على عنصرك مخفيا حتى تقوم بإزالته. يجب أن تعمل إذا كنت تستخدم كليهما .show() (لازالة display: none) و .addClass('show') (لإضافة فئة CSS الخاصة بك).

حاول استبدال

$("#showcase ul li:nth-child(" + ran + ")").show();

مع هذا الشخص

$("#showcase ul li:nth-child(" + ran + ")").addClass('show').show();

بدلا من display: none, ، استعمال .addClass('hidden') / .removeClass('hidden')

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