Поменять картинку в div
Ситуация такая: у меня есть див, а под ним три картинки. при нажатии на любую картинку она должна появляться в диве.
пробовал делать так: <html> <head> <style type="text/css"> #elem { width:100px; height:100px; background-image:url(n1.png); } </style> <script type="text/javascript"> function bag(m) { var el="elem"; el.style.background-image='url('+m+')'; } </script> <body> <div id="elem"></div> <br> <img src="2.png" onClick="bag(2.png);"> <img src="3.png" onClick="bag(3.png);"> <img src="4.png" onClick="bag(4.png);"> </body> </html> не работает. Если кто-нибудь знает в чём дело подскажите пожалуйста!!! |
Вы неправильно обращаетесь к элементу с id = "elem".
|
Отлавливайте событие, как здесь. После клика определяйте id того куда кликнули, это гораздо упростит ва жизнь
|
<div id='main'></div> <div id='pic'> <img src='http://javascript.ru/forum/image.php?u=12890&dateline=1303149256'> <img src='http://javascript.ru/forum/image.php?u=19820&dateline=1334914235'> </div> <script> var pic = document.getElementById('pic').getElementsByTagName('img') for(i=0;i<pic.length;i++) { pic[i].onclick='change()' } function change(event) { event = event || window.event var elem = event.target || event.srcElement document.getElementById('main').innerHTML = '<img src='+elem.src+'>' } </script> |
Хотя этот вариант работает походу только в опере, тогда можно через this:
<div id='main'></div> <div id='pic'> <img src='http://javascript.ru/forum/image.php?u=12890&dateline=1303149256'> <img src='http://javascript.ru/forum/image.php?u=19820&dateline=1334914235'> </div> <script> var pic = document.getElementById('pic').getElementsByTagName('img') for(i=0;i<pic.length;i++) { pic[i].onclick='change(this)' } function change(elem) { document.getElementById('main').innerHTML = '<img src='+elem.src+'>' } </script> |
9xakep, у меня в хроме ваши примеры не работают.
Пример для хромоподобных. <div onclick = " main.innerHTML = '<img src='+event.target.src+'>' "> <img src='http://javascript.ru/forum/image.php?u=12890&dateline=1303149256'> <img src='http://javascript.ru/forum/image.php?u=19820&dateline=1334914235'> </div> <div id="main"> </div> |
В моём примере div, кстати, надо заменить на span, так как иначе щелчок по пустому (без картинок) пространству занимаемому div приведёт к вызову обработчика щелчка.
|
9xakep,
Да, в лисе тоже не работает. И кто тебя только научил в JS обработчики текстом вешать? |
Раед,
странно как-то...вроде в пример с this ничего такого нету, а работают оба скрипта только в опере... Цитата:
|
Цитата:
2) Нормальные браузеры могут не принять объект-событие 3) Если юзаешь минификаторы, возникнут проблемы с областями видимости |
Часовой пояс GMT +3, время: 10:50. |