2014-03-29 4 views
1

Я пытаюсь изменить пару атрибутов стиля. Вот стиль, который я первым назначен clickedMenuHexagonDiv:Невозможно обновить атрибуты стиля div

clickedMenuHexagonDiv.style.MozTransform = "scale(.9999)"; 
clickedMenuHexagonDiv.style.width = num2px(this.width); 
clickedMenuHexagonDiv.style.marginRight = "3px"; 
clickedMenuHexagonDiv.style.position = "relative"; 
clickedMenuHexagonDiv.style.zIndex = "5"; 
clickedMenuHexagonDiv.style.styleFloat = "right"; 
clickedMenuHexagonDiv.style.cssFloat = "right"; 

Вот код, в дальнейшем, для атрибутов Я хочу изменить:

clickedMenuHexagonDiv.className = "centerHexagonDiv"; 
clickedMenuHexagonDiv.style.bottom = "auto"; 
clickedMenuHexagonDiv.style.right = "auto"; 
clickedMenuHexagonDiv.style.float = "none"; 
alert("clickedMenuHexagonDiv: " + clickedMenuHexagonDiv.style.cssText); 

А вот выход тревоги:

clickedMenuHexagonDiv: transform: scale(0.9999); width: 80px; margin-right: 3px; position: relative; z-index: 5; float: right; right: auto; bottom: auto; 

Как вы можете видеть, он обновляет только те атрибуты, которые ранее не были объявлены. Ошибок в консоли не было. Кроме того, несколько странно, bottom и right были изменены с помощью функции JQuery живой (я ставлю предупреждение прежде, чем clickedMenuHexagonDiv.className = "centerHexagonDiv";, и он показал отличные «авто» значения для bottom и right.

Я понял, что я могу сортировать исправьте это, если я вставляю clickedMenuHexagonDiv.style.cssText = "" перед изменением атрибутов стиля, но потом я должен снова объявить все атрибуты. Я бы постарался понять, почему я не могу обновлять определенные атрибуты.

+0

Конечно, кажется, что это будет работать -> http://jsfiddle.net/adeneo/9reSb/1/ – adeneo

+0

Я знаю, правильно? Возможно, это потому, что он находится в '$ (clickedMenuHexagonDiv) .promise(). Done (function() {'. Я запустил тест и посмотрю, что произойдет. – Didericis

+0

@adeneo Это не сработало, если я избавлюсь от ' $ (clickedMenuHexagonDiv) .promise(). done (function() {} ', он ничего не обновляет (нижняя и правая не изменяются). Похоже, что еще одна из моих функций выполняется до этого – Didericis

ответ

1

Если это было сделано: I необходимо использовать «styleFloat» и/или «cssFloat». «float» не является собственностью css.

He Ре обновленный код (только второй раздел нуждается в обновлении):

clickedMenuHexagonDiv.className = "centerHexagonDiv"; 
clickedMenuHexagonDiv.style.bottom = "auto"; 
clickedMenuHexagonDiv.style.right = "auto"; 
clickedMenuHexagonDiv.style.styleFloat = "none"; 
clickedMenuHexagonDiv.style.cssFloat = "none"; 
+1

, вероятно, стоит добавить свой код, чтобы ответ был полным (и легче для людей понять в будущем). – dav1dsm1th

+1

@ dav1dsm1th Хорошее предложение, спасибо. Просто сделал это. – Didericis

+0

Я думаю, вы также можете выбрать свой собственный ответ - так вопрос закрывается как ответил. – dav1dsm1th

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