Pregunta

    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();

.. el código anterior funciona bien con .show() al final, pero si lo cambio a .addClass('show') no va a funcionar.

Me gustaría darle una clase en lugar de aplicar la propiedad float:left a todos los artículos li en lugar de la display:list-item defecto. ¿Cómo puedo solucionar esto?

Gracias!

¿Fue útil?

Solución

Después de la respuesta de Jordan:

Puede reemplazar el display:none de li y luego agregar la clase de esta manera:

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

Otros consejos

¿Cómo estás escondiendo el elemento en el primer lugar? Si está configurando a display: none, por ejemplo, o el uso de la piel de jQuery (), que hace lo mismo, a continuación, que anulará CSS definida en otro lugar y mantener su elemento oculto hasta que lo elimine. Se debe trabajar si se utiliza tanto .show() (para eliminar display: none) y .addClass('show') (añadir su clase CSS).

Trate de reemplazar

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

con éste

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

en lugar de display: none, el uso .addClass('hidden') / .removeClass('hidden')

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top