Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   переменная как параметр id в getElementById(var) (https://javascript.ru/forum/css-html/28994-peremennaya-kak-parametr-id-v-getelementbyid-var.html)

bugiman 10.06.2012 15:39

переменная как параметр id в getElementById(var)
 
Доброго всем времени суток!
Возникла довольно странная проблема.
Появилась потребность в передачи переменной как параметра id
Не был уверен что так вообще делать можно и решил написать сначала что нибудь простое дабы проверить.
Написал и о чудо все работало как надо.
{
	p_1=1
	p_12='pic' + p_1	
	pic_p = "<img src='pix.png' id='" + p_12 + "'>"
	document.getElementById(pic).innerHTML=pic_p
	pix = document.getElementById(p_12).style
	pix.height=100
	pix.width=100
}

Тогда решил воплотить задумку
window.onmousedown = move
window.onmouseup = unmove
pixel = ''
coord_x = 0
coord_y = 0
pixid = '1'
pix_id_i = 0
function pix(e)
{
	x = e.pageX
	y = e.pageY	
	pixid = 'i' + pix_id_i
	pix_id_i++
	pixel = pixel + "<div id='" + pixid + "'><img src='pix.png'></div>"
	document.getElementById('pic').innerHTML=pixel
	pixel_style = document.getElementById(pixid).style
	pixel_style.top = x
	pixel_style.left = y
}
function move()
{
	window.captureEvents(Event.MOUSEMOVE)
	window.onmousemove = pix
}
function unmove()
{
	window.onmousemove = null
}

Т.е. новая картинка добавляется, но новые координаты ей не передаются :cray:

vadim5june 10.06.2012 15:51

Цитата:

Сообщение от bugiman (Сообщение 180566)
Т.е. новая картинка добавляется, но новые координаты ей не передаются :cray:

У нее же статическое позиционирование и top и left нельзя задать
Можно либо margin-top либо позиционирование менять
на 'absolute' или 'relative'

bugiman 10.06.2012 15:56

Прошу прощения, а как можно менять позиционирование, вне тега <style></style>
попробывал
pixel_style.position=absolut
ругался
"absolute is not define"

dmitriymar 10.06.2012 16:00

function pix(e)
{
x = e.pageX
y = e.pageY
pixid = 'i' + pix_id_i
pix_id_i++
pixel = pixel + "<div id='" + pixid + "'><img src='pix.png'></div>"
document.getElementById('pic').innerHTML=pixel
pixel_style = document.getElementById(pixid).style
pixel_style.top = x
pixel_style.left = y
pixel_style.position= 'absolute'
}

bugiman 10.06.2012 16:04

Спасибо!
Теперь он перестал ругаться, но почему то координаты передаются только одной картинке, остальные благополучно по прежнему выстраиваются в ряд...

vadim5june 10.06.2012 16:05

если с margin то так
pixel_style['margin-left']=x;

Deff 10.06.2012 16:06

bugiman,
попробуйте задать изначально:
<style>
div[id*="неизменяемая часть id"] {
position:absolute;
}
</style>

И второе - ID не может начинаться с цифры

dmitriymar 10.06.2012 16:09

откройте фаирбаг и посмотрите живой html и css

dmitriymar 10.06.2012 16:09

Цитата:

Сообщение от Deff
И второе - ID не может начинаться с цифры

уже может и давно может,и может состоять только из цифр

bugiman 10.06.2012 16:14

Попробывал так как Вы сказали, но ничего не изменилось.
Нет ни ошибок, ни результата..


Часовой пояс GMT +3, время: 13:00.