Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.01.2021, 01:05
Интересующийся
Отправить личное сообщение для cubano Посмотреть профиль Найти все сообщения от cubano
 
Регистрация: 18.09.2016
Сообщений: 20

Не срабатывает 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>
Ответить с цитированием
  #2 (permalink)  
Старый 03.01.2021, 01:50
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,582

<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, потому она недоступна глобально.
__________________
29375, 35

Последний раз редактировалось Aetae, 03.01.2021 в 01:52.
Ответить с цитированием
  #3 (permalink)  
Старый 03.01.2021, 10:34
Интересующийся
Отправить личное сообщение для cubano Посмотреть профиль Найти все сообщения от cubano
 
Регистрация: 18.09.2016
Сообщений: 20

СПАСИБО ЗА ПОМОЩЬ !!!
БОЛЬШОЕ СПАСИБО !!!
Теперь функция a() срабатывает при нажатии кнопки а не сразу при загрузке страницы.

Но, я правильно понял !?
Я не могу изменить значение переменной
var viewPortWidth=1920;

функции
function initKeyS()
из функции
a();
при нажатии кнопки ?
Ответить с цитированием
  #4 (permalink)  
Старый 03.01.2021, 14:36
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,582

Можешь. И меняешь. Но только внутри функции.
Примитивные значения в js копируются при передаче, а не передаются по ссылке. Соответственно new keys имеет то значение которые было на момент onload и при клике не меняется.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер срабатывает раньше времени или вообще не срабатывает Terebonko Элементы интерфейса 6 03.08.2017 12:43
onclick срабатывает со 2 раза в ie djonA Общие вопросы Javascript 19 25.03.2013 01:07
AJAX запрос в Internet Explorer срабатывает через раз nikolayseo jQuery 5 13.11.2012 00:13
Нажатие по дате в календаре срабатывает только со второго клика afr0 Events/DOM/Window 4 31.10.2012 13:39
Не срабатывает при отсутствии в теле документа yuriii jQuery 3 06.05.2010 17:45