2017-04-21 4 views
0

In einer Woocommerce-Seite möchte ich bestimmte Produkte verstecken, wenn sie ein Abzeichen (eine Klasse) haben. Ich kann sie nicht einfach verstecken, denn wenn ich das tue, werden sie auf der Seite mit den einzelnen Produkten nicht als Upselling erscheinen. Also habe ich versucht, mit jQuery, wenn ich in der Konsole eingeben:In der Woocommerce-Seite funktioniert das Skript nur, wenn es in der Konsole ausgeführt wird

var liSet = $("body.term-flamboyants-lingerie li.animate"); 

    if ($("body.term-flamboyants-lingerie li.animate a").hasClass("setBadge")){ 
     liSet.css("display", "none"); 
    } 

Es funktioniert, die Produkte mit dem Abzeichen, die in dieser speziellen Seite sind ausgeblendet. Das Problem ist, dass wenn ich dies in meine script.js-Datei schreibe, es nicht funktioniert. Ich habe mehr Code in "script.js", das funktioniert gut und es ist alles verpackt in einem "jQuery (Dokument) .ready (function ($) {" Ich bin ein bisschen ratlos, warum es nicht würde Arbeit.

bearbeiten A setTimeOut Funktion funktioniert, so dass mein Code ausgeführt wurde, bevor diese Klasse auf der Seite gesetzt wurde. gibt es einen besseren Weg?

+0

versuchen Sie mit jQuery überall ohne $ an Funktion übergeben –

+0

Ich habe versucht, es funktioniert immer noch nicht. Und ein paar Zeilen über $ funktioniert gut, wie es im Wrapper definiert ist. – Sergi

+1

versuchen Sie, die Seitenquelle anzuzeigen, nicht inspizieren Element, und sehen Sie, ob es Elemente mit der Klasse setBadge gibt. Ich schätze, das ist nur eine Frage der Zeit. Wenn das Skript ausgeführt wird, ist setBadge noch nicht verfügbar. – Reigel

Antwort

0

die Lösung, bei der die Klasse „setBadge“, um herauszufinden, war . wie von Reigel eingestellt wurde dann fixierte ich die Frage mit:

$("a[href*='set']:first-child").addClass('setBadge'); 


    if ($("body").hasClass("term-flamboyants-lingerie")){ 
     $("a[href*='set']").parent().css("display", "none"); 
    } 

ich hatte die Eltern zu verstecken, um auch die Preise und andere Add-ons zu verstecken t Das "a" -Tag.

Verwandte Themen