#javascript #html #css
#javascript #HTML #css
Вопрос:
У меня есть некоторый javascript, который настраивает скрытый div для автоматического предложения, и он отлично работает, когда для doctype установлено значение : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
function editpartnumberInit() {
/* Create Suggest Box */
suggestDiv=document.createElement("DIV");
suggestDiv.id="editpartnumbersuggestBox";
suggestDiv.className="suggest_results";
suggestDiv.style.visibility="hidden";
suggestDiv.style.width=400;
suggestDiv.style.zIndex="200";
document.body.appendChild(suggestDiv);
suggestDiv.style.position="absolute";
pos = suggestPos("editpartnumber", 400);
suggestDiv.style.top=pos[1];
suggestDiv.style.left=pos[0];
/* Setup the event handler */
editpartnumberOldValue=document.getElementById("editpartnumber").value;
suggestAddTimer("editpartnumber", "editpartnumberOnchange()");
}
Однако, если я изменю doctype на <!DOCTYPE html>
то, что происходит при инициализации, — это стиль.width, style.top, style.left не устанавливается, ошибок нет, даже когда я отлаживаю в Chrome и пытаюсь установить с консоли, он просто не устанавливается.
Результаты с doctype 4.01:
<div id="editpartnumbersuggestBox" class="suggest_results" style="visibility: hidden; width: 400px; z-index: 200; position: absolute; top: 321px; left: 421px;"></div>
Результаты с помощью простого документа HTML 5:
<div id="editpartnumbersuggestBox" class="suggest_results" style="visibility: hidden; z-index: 200; position: absolute;"></div>
Кто-нибудь знает, в чем здесь проблема?
Обновление: исправлено, спасибо!
suggestDiv.style.width="400px";
pos = suggestPos("editpartnumber", 400);
suggestDiv.style.top=pos[1] "px";
suggestDiv.style.left=pos[0] "px";
Комментарии:
1. JS
styles
принимает только строки; измените ваши целые200px
числа, например. Вам необходимо установить единицу измерения
Ответ №1:
Я думаю, что проблема здесь : suggestDiv.style.width=400;
. В HTML5 / CCS3 свойство width не может быть простым числом, оно должно иметь единицу.
Если вы измените его на suggestDiv.style.width='400px';
, он должен работать.
то же самое применимо и здесь:
pos = suggestPos("editpartnumber", 400);
suggestDiv.style.top=pos[1];
suggestDiv.style.left=pos[0];
Вы должны быть уверены, что booth pos[1]
и pos[0]
включает «px» после каждого числа.