Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Если не вызвана функция.. (https://javascript.ru/forum/events/46582-esli-ne-vyzvana-funkciya.html)

cript 15.04.2014 19:29

Если не вызвана функция..
 
Приветствую!
По клику совершается функция, например
<a href="#" onclick="javascript:gofunction();">Click</a>
Подскажите как задать примерно такое условие:
Если функция не вызвана, то совершается действие..

Sweet 15.04.2014 19:55

Функция gofunction должна записывать в переменную, что выполнилась, и, если этой отметки нет - совершать действие.

cript 15.04.2014 20:25

Как то так?
<script>
function gofunction() {
var abc = '1';
}
if(!abc) {
alert('22');
}
if(abc != '') {
alert('OK');
}
</script>
<a href="#" onclick="javascript:gofunction();">Click</a>

Sweet 15.04.2014 20:36

Цитата:

Сообщение от cript
Как то так?

Очевидно же, что нет! Или то, что валится с ошибкой, не смущает? Оператор var делает переменную локально, её не видно вне gofunction.

cript 15.04.2014 20:40

Без var тоже не срабатывает

Erolast 15.04.2014 20:52

А с чего бы должно работать? Глобальные переменные в JS объявляются так:
window.somevariable = "somecontent"

Это во-первых. Во-вторых - зачем "javascript:" в обработчике? Пиши просто вызов функции.

Но я бы делал в функции return false в случае неуспешного выполнения, а в обработчике onclick соответствующую проверку. То есть,

<script>
function myFunc()
{
  if (1 > 5)
    return false;
  else
    return true;
}
</script>
<a href="#" onclick="if (myFunc()) {alert('Функция выполнена успешно');} else {alert('Что-то не так...');}">Ссылка</a>

cript 15.04.2014 21:12

Erolast,
Благодарю за ответ, но это все не то..
Понимаете, мне нужно начать выполнение другой функции, при условии, что предыдущая функция не была вызвана, то есть на ссылку не нажимали, значит совершаем действие..
Цитата:

Сообщение от Erolast
window.somevariable = "somecontent"

не срабатывает..

BETEPAH 15.04.2014 21:16

Цитата:

Сообщение от cript
По клику совершается функция

Цитата:

Сообщение от cript
Если функция не вызвана, то совершается действие

А как это может быть? Если по клику совершается функция, значит она вызвана же. Нет?

cript 15.04.2014 21:20

Цитата:

Сообщение от BETEPAH
Если по клику совершается функция, значит она вызвана же

Все верно

BETEPAH 15.04.2014 23:03

Ну, так что проверять-то? Если функция совершается, она вызвана. Если она не вызвана, то не совершается и ничего она сделать не может.
Или нужна проверка, что функция вызвана именно кликом по этой кнопке/ссылке? Ну поставьте в вызов в кнопке флаг и проверяйте его в функции.
<a href="#" onclick="javascript:gofunction(true);">Click</a>
<script>
function gofunction(flag) {
if (flag) //функция запущена кнопкой

Если нужна еще и защита от читеров, можно поставить в вызов this и проверять его...
В общем, не очень понятна суть задачи.


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