Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему не работает onclick (https://javascript.ru/forum/misc/2557-pochemu-ne-rabotaet-onclick.html)

Mr. GORA 15.01.2009 15:58

Почему не работает onclick
 
привет!!!у мя возникли две проблемы в коде !помогите пожалуйста если можете!
1, Почему такой код выдаёт ошибку
document.getElementById(nam[r]).innerHTML= '<center><img src="test.gif" onclick="alert("hi")"></center>';
а вот такой нет
document.getElementById(nam[r]).innerHTML= '<center><img src="test.gif"></center>';
дело в онклик!почему он вызывает ошибку???
2,вот код скрипта
<html>
<head>

<title>1234567890</title>

</head>

<body>

<script language="javascript">
document.write('<table border="1" bgcolor="lime" width="360" align="center">');
document.write('<tr>');
document.write('<td width="65" height="155">&nbsp;<div id="1"></div></td>');
document.write('<td width="60" height="155">&nbsp;<div id="2"></div></td>');
document.write('<td width="60" height="155">&nbsp;<div id="3"></div></td>');
document.write('</tr>');
document.write('<tr>');
document.write('<td width="60" height="155">&nbsp;<div id="4"></div></td>');
document.write('<td width="60" height="155">&nbsp;<div id="5"></div></td>');
document.write('<td width="60" height="155">&nbsp;<div id="6"></div></td>');
document.write('</tr>');
document.write('</table>');
var a=1; 
var s=2; 
var d=3; 
var f=4; 
var g=5; 
var h=6; 
var nam=new Array(a,s,d,f,g,h); 
var r=Math.floor(Math.random()*6); 
document.getElementById(nam[r]).innerHTML= '<center><img src="test.gif"></center>';
</script>
</body>

</html>

как сделать так чтоб картинка меняла иды из массива не при каждом обновлении а через каждую секунду?
ОЧ НАДЕЮСЬ НА ВАШУ ПОМОЩЬ!!!!!!!

ZoNT 15.01.2009 16:01

дело в кавычках:
onclick="alert(" - строка закончилась - hi - непонятное слово, которого в html быть не должно - ")" - снова строка.
Надо так:
onclick="alert(\"hi\")"

Mr. GORA 15.01.2009 16:08

!!!!!!!!!!
 
Спасиб те!!а как быть со вторым вопросом?

ZoNT 15.01.2009 16:10

http://javascript.ru/forum/misc/2540...html#post10604
Не забудь прочитать внимательно мои комменты...

Mr. GORA 15.01.2009 16:16

!!!!!!!!!!!!!!!!!!!!!
 
да!я там посмотрел!!
но мне нужно другое что картинка только одна !бегала по идам !
у тя там в комментариях картинка добавляется в каждый столбик таблица!
а мне нужно чтоб она быстро меняла свои столбики!!
извини что плохо объясняю!!

Mr. GORA 15.01.2009 16:21

!
 
зонт,а код про алерт снова не работает в опере и эксплоере торлько белый цвет виден!!
что происходит из за этого онклик я не понимаю !
без онклик вден нормальный фон а с онклик тока белый!

ZoNT 15.01.2009 17:08

<html>
<head>
<title></title>
</head>
<body>
<script language="javascript">
var str = '<table border="1" bgcolor="lime" width="360" align="center"><tr>';
str += '<td width="65" height="155">&nbsp;<div id="d1"></div></td>';
str += '<td width="60" height="155">&nbsp;<div id="d2"></div></td>';
str += '<td width="60" height="155">&nbsp;<div id="d3"></div></td>';
str += '</tr><tr>';
str += '<td width="60" height="155">&nbsp;<div id="d4"></div></td>';
str += '<td width="60" height="155">&nbsp;<div id="d5"></div></td>';
str += '<td width="60" height="155">&nbsp;<div id="d6"></div></td>';
str += '</tr></table>';
 
document.write(str);

var old = null;
(function(){
    var r=Math.ceil(Math.random()*6);
	if (old!=null) old.innerHTML = '';
	old = document.getElementById('d'+r);
    old.innerHTML='<center><img src="test.gif"></center>';
 
    setTimeout(arguments.callee,1000)
})();
</script>
</body>
</html>


и

onclick="alert(\'hi\')"

Mr. GORA 15.01.2009 17:19

Большое спасибо!!
 
огромное тебе спасибо профессор зонт!!!
всё окей!!
я умру от радости если у тя найдётся время чтоб объяснить мне вот этот фрагмент кода
var old = null;
(function(){
var r=Math.ceil(Math.random()*6);
if (old!=null) old.innerHTML = '';
old = document.getElementById('d'+r);
old.innerHTML='<center><img src="test.gif"></center>';

setTimeout(arguments.callee,1000)
})();
!!!!!!!!!!!!!!!!!!!!!!!!!
СПАСИБ ЗА ВСЁ !

ZoNT 15.01.2009 17:51

var old = null; - создаём переменную, в которой будем хранить текуший див (тот, в котором сейчас отрисована картинка). На данный момент переменная = null, так как картинка ещё ни разу нигде не отрисована.

(function(){ - начало анонимной функции
var r=Math.ceil(Math.random()*6); - генерируем чисто от 1 до 6
if (old!=null) old.innerHTML = ''; - если картинка была отрисована (old не пуст) то обнуляем его контент (стираем картинку).
old = document.getElementById('d'+r); - перезапоминаем в old новый див (по сгенерированному рандомному числу r)
old.innerHTML='<center><img src="test.gif"></center>'; - отрисовываем в него картинку

setTimeout(arguments.callee,1000) - устанавливаем таймаут на вызов этой функции (самой себя) через одну секунду
})(); - завершаем описание анонимной функции и сразу же её запускаем.

Mr. GORA 15.01.2009 18:39

!!!!!
 
спасиб те зонт!!!
огромное спасибо!


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