Frage

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

.. oberhalb der Code funktioniert gut mit .show() am Ende, aber wenn ich es es wird nicht funktionieren .addClass('show') ändern.

Ich möchte es, eine Klasse geben, anstatt float:left Eigenschaft auf alle li Elemente anstelle des Standard-display:list-item anzuwenden. Wie kann ich dieses Problem beheben?

Danke!

War es hilfreich?

Lösung

Nach Jordans Antwort:

Sie können die display:none von li ersetzen und dann die Klasse auf diese Weise hinzufügen:

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

Andere Tipps

Wie verstecken Sie das Element in erster Linie? Wenn Sie es sind Einstellung beispielsweise auf display: none, oder unter Verwendung von jQuery hide (), die die gleiche Sache tut, dann wird das CSS außer Kraft definiert an anderer Stelle und halten Sie Ihr Element verborgen, bis Sie ihn entfernen. Es sollte funktionieren, wenn Sie beide .show() verwenden und display: none (.addClass('show') zu entfernen) (CSS Klasse hinzuzufügen).

Versuchen Sie ersetzen

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

mit diesem

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

statt display: none, Verwendung .addClass('hidden') / .removeClass('hidden')

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top