Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Ошибка формирования onclick в IE (https://javascript.ru/forum/css-html-internet-explorer/33442-oshibka-formirovaniya-onclick-v-ie.html)

Pavel2012 23.11.2012 15:21

Ошибка формирования onclick в IE
 
Добрый день!
Формирую ява скриптом кнопки с событием onclick. Так вот, если кнопка была явно прописана на странице, то в IE(версии 9 и 10) onclick отрабатывает, если кнопка сформирована JS, то нет...

Пример кода:
<html>
<head>
<title></title>
</head>
<script language="JavaScript">
function test1() {
var bl = document.getElementById('test');
var bt1 = document.createElement("button");
bl.appendChild(bt1);
bt1.setAttribute("type", "button");
bt1.setAttribute("onclick", "test2();");
var tn1 = document.createTextNode("Button 2");
bt1.appendChild(tn1);
}
function test2() {
var bl = document.getElementById('test1');
var bt1 = document.createElement("button");
bl.appendChild(bt1);
bt1.setAttribute("type", "button");
bt1.setAttribute("onclick", "test3();");
var tn1 = document.createTextNode("Button 3");
bt1.appendChild(tn1);
}
function test3() {
var s = 0;
}
</script>
<body>
<table>
<tr>
<td>
<button type="button" onclick="test1();">Button 1</button>
</td>
<td id="test">
</td>
<td id="test1">
</td>
</tr>
</table>
</body>
</html>

При нажатии на кнопку 1 формируется кнопка 2, так вот у кнопки 2 не отрабатывает onclick.

В остальных браузерах (firefox, chrome, opera) все работает как задумано.

ksa 23.11.2012 16:40

Как вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function test1() {
	var bl = document.getElementById('test');
	var bt1 = document.createElement("button");
	bt1.setAttribute("type", "button");
	bt1.onclick=test2;
	var tn1 = document.createTextNode("Button 2");
	bt1.appendChild(tn1);
	bl.appendChild(bt1);
}
function test2() {
	var bl = document.getElementById('test1');
	var bt1 = document.createElement("button");
	bt1.setAttribute("type", "button");
	bt1.onclick=test3;
	var tn1 = document.createTextNode("Button 3");
	bt1.appendChild(tn1);
	bl.appendChild(bt1);
}
function test3() {
	alert('Ok');
}
</script>
</head>
<body>
<table>
	<tr>
		<td>
			<button type="button" onclick="test1();">Button 1</button>
		</td>
		<td id="test"></td>
		<td id="test1"></td>
	</tr>
</table>
</body>
</html>

Pavel2012 23.11.2012 18:06

Большое спасибо


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