Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   не вызывается функция с вложенными циклами в onclick из подключенного файла (https://javascript.ru/forum/misc/55129-ne-vyzyvaetsya-funkciya-s-vlozhennymi-ciklami-v-onclick-iz-podklyuchennogo-fajjla.html)

Karabeynik 14.04.2015 23:28

не вызывается функция с вложенными циклами в onclick из подключенного файла
 
Есть код
http://jsfiddle.net/0wbcsz34/
[Все файлы подключены к странице, убрал эти строки]
Проблема заключается в том, что при нажатии на кнопку в таблицу должны генерироваться случайные числа от 3 до 5. Код js валидный, все вызываемые функции объявлены. Пробовал:
1) вставлять также с помощью innerHTML
2) пробовал без переменной str записывать сразу в скобки
3) пробовал писать скрипт сразу в html
4) пробовал вызывать функцию в скрипте и в событии onclick писать путь к файлу js с вызванной функцией,
но все попытки не привели к желаемому результату.
Помогите кто чем может.

рони 14.04.2015 23:55

Karabeynik,
вы что-нибудь про видимость читали? переменные внутри функции недоступны для внешней другой функции! да и сами функции недоступны для onclick если находятся внутри другой функции лучше клик назначать не через атрибут onclick и ещё куча ошибок.

рони 15.04.2015 00:22

Karabeynik,
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title> - jsFiddle demo</title>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <style type='text/css'>
    #ProgressTable{
	margin: 10px;
}
#ProgressTable table{
	font-size: 10px;
}
#ProgressTable table tr td{
	text-align: center;
}
.TableButton{
	height: 36px;
	width: 36px;
	padding: 0;
	position: fixed;
	right: 5%;
	top: 1px;
	cursor: pointer;
}
  </style>



<script>
$(window).load(function(){
function random(){
   return Math.floor(Math.random()*3+3);
}
function changeMarks(){
	$("[class^='TableTr'] td").text(random);
}
$('.TableButton').click(changeMarks)
});
</script>
</head>
<body>
	<button class="TableButton">
		<img  class="ProgressButton" src="http://javascript.ru/forum/images/smilies/cray.gif">
	</button>
	<div id="ProgressTable">
				<table border="1">
					<tr>
						<td></td>
						<th>Name1</th>
						<th>Name2</th>
						<th>Name3</th>
						<th>Name4</th>
						<th>Name5</th>
					</tr>
					<tr class="TableTr1">
						<th>THISTH</th>
						<td>0</td>
						<td>0</td>
						<td>0</td>
						<td>0</td>
						<td>0</td>
					</tr>
					<tr class="TableTr2">
						<th>THISTH</th>
						<td>0</td>
						<td>0</td>
						<td>0</td>
						<td>0</td>
						<td>0</td>
					</tr>
					<tr class="TableTr3">
						<th>THISTH</th>
						<td>0</td>
						<td>0</td>
						<td>0</td>
						<td>0</td>
						<td>0</td>
					</tr>
					<tr class="TableTr4">
						<th>THISTH</th>
						<td>0</td>
						<td>0</td>
						<td>0</td>
						<td>0</td>
						<td>0</td>
					</tr>
				</table>
			</div>
</body>

</html>


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