2016-08-07 5 views
0

Я сделал вид игры в javascript, и в этой игре есть некоторые divs, которые горизонтально движутся с разными временами перехода. В этой игре есть функция, которая называется каждый 1/100 секунд. Затем он сначала проверяет его положение с:jQuery .css («margin-left»)

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

А теперь странная вещь: когда я установил класс в HTML, как:

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

В .css("margin-left") работает отлично, но когда я не установлю класс в HTML и добавить класс в JS, как:

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

$(theclass).css("margin-left") Затем дают неправильные выводы. Я пробовал с .position и .offset, но эти оба не работали для меня.

Мой код:

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

Не против неполного использования {}, но в моем коде, который фиксировано.

PS: с помощью кронштейнов

+0

Что вы можете увидеть в отладчике на элемент блока сразу после block.addClass («я» + v); ? Вам удалось добавить класс? – sfs

+0

addClass - это функция jQuery, но вы не используете jQuery в этом: block.addClass («i» + v); Вместо этого вы можете использовать block.setAttribute («класс», «i» + v); – sfs

+0

Да, но перед тем, как я хочу добавить класс «i» + v, я добавил еще один класс, который позволяет div перемещать правый сайт, и я не хочу удалять этот класс, что происходит с .setAttribute и Я также попробовал его с помощью .setAttribute, но это все еще не исправляет мою проблему. Еще спасибо за помощь (: – Tomvkgames

ответ

0

Я считаю, что вам не хватает dot до выбора class1, в JQuery существует два типа выбора элементов либо по классам, как $(".ElemnetClass") или по ID, как $("#ElementID")

Более подробную информацию о .css()

+0

Да, да, я знаю, что это не проблема! – Tomvkgames

+0

Отправьте свой код – developerbh

+0

Я сделал, спасибо за помощь! – Tomvkgames

0

Это пример вашего требования

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

Вы можете использовать этот тип также Сначала вы создаете один класс ваших требований и использовать код ниже

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

Да, я знаю, как установить маржу слева, но теперь мой вопрос - как GET margin-left, обычно это работает с .position.left или offset.left, но это не работает для меня, поэтому я попробовал .css («margin-left»), но этот работает только, если я устанавливаю класс в html а не если я добавлю только класс в javascript с .addClass – Tomvkgames

Смежные вопросы