2016-08-07 43 views
0

Ich habe eine Art Spiel in Javascript gemacht und in diesem Spiel gibt es einige Divs, die sich horizontal mit verschiedenen Übergangszeiten bewegen. In diesem Spiel gibt es eine Funktion, die jeweils 1/100 Sekunden aufgerufen wird. Dann prüft er zuerst sie Position mit:jQuery .css ("margin-left")

$("class1").css("margin-left") 

Und nun die seltsame Sache: wenn ich die Klasse in html gesetzt wie:

<div class = "class1"></div> 

Die .css("margin-left") funktioniert perfekt, aber wenn ich nicht setzen ein Klasse in html und ich füge hinzu, die Klasse in js wie:

$("div:nth-child(6)").addClass("class1"); 

Dann wird die $(theclass).css("margin-left") geben falsche Ausgänge. Ich versuchte mit der .position und .offset, aber diese beiden funktionierten nicht für mich.

Mein Code:

function newBlock(block, marginTop, bgc, height, hoogte1, hoogte2, v, tijd){ 
         block.css("background-color", bgc).css("height", height).css("margin-top", marginTop); 
         var movement1 = "movement1"; 
         var movement2 = "movement2"; 
//      if (positionPixelsBlockF > 0){ 
//       positionPixelsBlockF = positionBlockF.slice(0, 3); 
//      } 
         setInterval(positie, 10); 
         function positie(){ 
         tijd = tijd + 1; 
         if (v != 0){ 
          block.addClass("i" + v); 
          $(".i" + v).css({"width": "50px", "display": "inline-block", "position": "absolute", "z-index": "20"}); 
          var positionBlockF = $(".i" + v).css("margin-left"); 
          var positionPixelsBlockF = positionBlockF.slice(0, 4); 
          $("#uitleg4").html(positionPixelsBlockF); 
else if (v === 0){ 
          var positionBlockF = $(".b1").css("margin-left"); 
          var positionPixelsBlockF = positionBlockF.slice(0, 4); 

Sie nicht die unvollständige Nutzung des {} dagegen, aber in meinem Code, der festgelegt wird.

PS: mit Klammern

+0

Was können Sie im Debugger auf dem Blockelement siehe rechts nach block.addClass („i“ + v); ? Hast du es geschafft, die Klasse hinzuzufügen? – sfs

+0

addClass ist jQuery-Funktion, aber Sie verwenden jQuery nicht in diesem: block.addClass ("i" + v); Sie könnten stattdessen block.setAttribute ("class", "i" + v) verwenden; – sfs

+0

Ja, aber bevor ich die Klasse "i" + v hinzufügen möchte, habe ich eine andere Klasse hinzugefügt, die das div die richtige Seite verschieben lässt, und ich möchte diese Klasse nicht löschen, was mit .setAttribute und Ich habe es auch mit dem .setAttribute versucht, aber das behebt mein Problem immer noch nicht. Immer noch danke für die Hilfe (: – Tomvkgames

Antwort

0

Ich glaube, Sie sind ein dot vor class1 Auswahl fehlt, in jquery gibt es zwei Arten von Auswahlelementen entweder durch Klasse wie $(".ElemnetClass") OR von ID wie $("#ElementID")

Weitere Daten zu .css()

+0

Ja ja ich weiß, dass das nicht das Problem ist! – Tomvkgames

+0

Veröffentlichen Sie Ihren Code bitte – developerbh

+0

Ich tat, danke für die Hilfe! – Tomvkgames

0

Dies ist ein Beispiel für Ihre Anforderung

$(".class").css('margin-left','10px');// Some Px (or) percentage Your Based On Requirement 

Sie können diese Art Verwenden Sie auch eine Klasse Sie erstellen zunächst Ihre Anforderungen und die Verwendung Below-Code

$("#ElementId").addClass('created classname Here'); 
+0

Ja, ich weiß, wie die Marge-links, aber jetzt meine Frage ist, wie zu bekommen margin-left, normalerweise funktioniert das mit .position.left oder offset.left, aber diese funktionieren nicht für mich, also habe ich .css ("margin-left") versucht, aber das funktioniert nur, wenn ich die Klasse in html einstelle und nicht, wenn ich die Klasse nur in Javascript mit .addClass hinzufüge – Tomvkgames