Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: JavaScript запрет выполнения функции
цитата
24/07/08 в 00:05
 ibiz
камрады выручайте, опять туплю к концу рабочего дня(
есть конструкция, которая вызывает функцию:
<a href="javascript:;" onclick="return foto();">foto</a>
функция foto() вызывается после каждого клика, как сделать, чтоб функция вызывалась только один раз?

P.S. придумал фишку с if(click<1) {click++;...} в самой функции, если она уже вызывалась... но чото помойму не верное решение icon_smile.gif
цитата
24/07/08 в 01:23
 Formator
Код:
<script>
clicked=false;
function func()
{
if (clicked)
  return false;
 
alert("hello");
clicked=true;
}
</script>
<a href="#" onclick="func();">click me</a>
цитата
24/07/08 в 02:13
 ibiz
CJLOG: ну это по сути тоже самое, что if(click<1) click++;
есть принципиально другие варианты?
цитата
24/07/08 в 03:20
 Formator
Хм. А принципиально другие - это как? Что не устраивает в этом варианте? Те же условия можно вынести непосредственно в ссылку:
Код:
<script>
clicked=false;
function func()
{
alert("hello");
}
</script>
<a href="#" onclick="if (clicked) null; else {clicked=true;func();}">click me</a>

Ещё можно попробовать удалить функцию. Изъебнутся можно разными способами, но нужно ли?
цитата
24/07/08 в 03:26
 Formator
Вот тебе радикальный способ icon_smile.gif
Код:

<script>
function func()
{
alert("hello");
}
</script>
<a href="#" onclick="func();func=new Function();">click me</a>

Имхо, проще уже никак не сделать.
цитата
24/07/08 в 08:04
 wMaster
кстати, лучше так еще делать в твоем случае onclick="func(); return false;"


Эта страница в полной версии