Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передать переменную не вызывая функцию (https://javascript.ru/forum/misc/52427-peredat-peremennuyu-ne-vyzyvaya-funkciyu.html)

Tord002 18.12.2014 19:06

Передать переменную не вызывая функцию
 
Здравствуйте, уважаемые! Сразу к делу:
Есть 2 кнопки:
<div onclick="function1();">Кнопка 1</div>
<div onclick="function2();">Кнопка 2</div>

Есть 2 функции:
Первая скрывает div с id="id1" и отображает div с id="id2"
function function1()
{
document.getElementById('id1').style.display = 'none';
document.getElementById('id2').style.display = 'block';
}

Вторая наоборот - скрывает div с id="id2" и отображает div с id="id1"
function function2()
{
document.getElementById('id2').style.display = 'none';
document.getElementById('id1').style.display = 'block';
}

Необходимо чтобы при нажатии на Кнопку 2 было известно была ли выполнена function1()

Пробывал так:

function function1(temp)
{
if (temp == 1)
{
document.getElementById('id1').style.display = 'none';
document.getElementById('id2').style.display = 'block';
};
}

function function2()
{
document.getElementById('id2').style.display = 'none';
document.getElementById('id1').style.display = 'block';
var peremennaya = '1';
function1(peremennaya);
}

Но при нажатии на Кнопку 2 сразу срабатывает function1().
Если не трудно, подскажите как сделать чтобы переменая попадала в фунцию function1, но функция вызываласть только по onclick на кнопке?
Ну или может есть иной способ определить при нажатии на Кнопку 2 была ли выполнена function1()
Заранее огромное спасибо!

Malleys 18.12.2014 22:07

<!doctype html>
  <html lang="ru">
    <head>
      <meta charset="utf-8">
      <script type="text/javascript">

function function1() {
  // показывает, что эту функцию уже вызывали
  function1.executed = true;
  document.getElementById('id1').style.display = 'none'; 
  document.getElementById('id2').style.display = 'block';

  if(function1.executed) {
     document.getElementById('id1').innerHTML = 'Переменная присвоенная в function2: ' + function1.variable;
  }
};

// показывает, что function1 ещё не выполняли
function1.executed = false;

// чтобы переменая попадала в фунцию function1
function1.variable = null;

function function2() {
  // Сюда присвоить значение переменной и будет доступ в function1 
  function1.variable = 'Any text';
  document.getElementById('id2').style.display = 'none'; 
  document.getElementById('id1').style.display = 'block';
}
      </script>
    </head>
    <body>
      <button onclick="function1(); ">Кнопка 1</button>
      <button onclick="function2(); ">Кнопка 2</button>
      <div id="id1" style="width: 20%; height: 50%; position: absolute; top: 50px; left: 20%; background: #ff8080;">#id1</div>
      <div id="id2" style="width: 20%; height: 50%; position: absolute; top: 50px; left: 60%; background: #80ff80;">#id2</div>
    </body>
</html>

Tord002 21.12.2014 23:18

ОГРОМНОЕ СПАСИБО!
Помогли! Очень признателен!


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