Не срабатывает onclick="a()"
Здравствуйте !!!
Помогите пожалуйста! Сразу хочу предупредить - мой уровень js оч близок "копипаст". Функция срабатывает при загрузке страницы, а мне нужно чтобы при нажатии на кнопку. function a() { viewPortWidth =520; } Вот код: <html lang=""> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>KeyS</title> <script type="text/javascript" src="index/files/KeyS.js"></script> <script type="text/javascript"> var keys; function initKeyS() { var nameOfDiv = "KeyS"; var viewPortWidth = 1920; a() function a() { viewPortWidth =520; alert( x); } keys = new keys(nameOfDiv,viewPortWidth); } window.onload = initKeyS; </script> </head> <body oncontextmenu="return false;"> <button id="btn" onclick="a()">ИЗМЕНИТЬ</button> <div id="KeyS"></div> </body> </html> |
<html lang=""> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>KeyS</title> <script type="text/javascript" src="index/files/KeyS.js"></script> <script type="text/javascript"> var keys, x = 1; function initKeyS() { var nameOfDiv = "KeyS"; var viewPortWidth = 1920; document.getElementById('btn').onclick = a; function a() { viewPortWidth =520; alert( x); } keys = new keys(nameOfDiv,viewPortWidth); } window.onload = initKeyS; </script> </head> <body oncontextmenu="return false;"> <button id="btn">ИЗМЕНИТЬ</button> <div id="KeyS"></div> </body> </html> Функция a создаётся внутри функции initKeyS, потому она недоступна глобально. |
СПАСИБО ЗА ПОМОЩЬ !!!
БОЛЬШОЕ СПАСИБО !!!
Теперь функция a() срабатывает при нажатии кнопки а не сразу при загрузке страницы. Но, я правильно понял !? Я не могу изменить значение переменной var viewPortWidth=1920; функции function initKeyS()из функции a();при нажатии кнопки ? |
Можешь. И меняешь. Но только внутри функции.
Примитивные значения в js копируются при передаче, а не передаются по ссылке. Соответственно new keys имеет то значение которые было на момент onload и при клике не меняется. |
Часовой пояс GMT +3, время: 22:18. |