Показать сообщение отдельно
  #1 (permalink)  
Старый 21.10.2016, 13:30
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Не работает this в функции
Вставляю на страницу чекбокс, и назначаю ему обработчик.

Когда через html чекбоксу назначаешь обработчик на клик(onclick) - не работает:
Цитата:
undefined = 0
undefined = 0
<html>
	<head></head>
	<script type="text/javascript">
		function save_checkbox()
		{
			alert(this.id + ' = ' + (this.checked ? 1 : 0))
		}
		function main()
		{
			var div = document.createElement('div')
			div.innerHTML = "<br><input type='checkbox' id=checkbox' onclick='save_checkbox()'>"

			document.querySelector('div').appendChild(div)
		}
		document.addEventListener("DOMContentLoaded", main)
	</script>
	<body class=txt bgcolor='#FFF' style='margin: 0;'>
		<center>
			<div>Text</div>
		</center>
	</body>
</html>


А если через JS, то работает:
Цитата:
checkbox = 1
checkbox = 0
<html>
	<head></head>
	<script type="text/javascript">
		function save_checkbox()
		{
			alert(this.id + ' = ' + (this.checked ? 1 : 0))
		}
		function main()
		{
			var div = document.createElement('div')
			div.innerHTML = "<br><input type='checkbox' id='checkbox'>"

			document.querySelector('div').appendChild(div)

			document.querySelector('[type="checkbox"]').addEventListener('click', save_checkbox)
		}
		document.addEventListener("DOMContentLoaded", main)
	</script>
	<body class=txt bgcolor='#FFF' style='margin: 0;'>
		<center>
			<div>Text</div>
		</center>
	</body>
</html>


Почему не работает - то? Задолбала уже эта мистика...

Последний раз редактировалось Артист, 21.10.2016 в 13:45.
Ответить с цитированием