[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: setTimeout onclick
GET
Привет, как валидно сделать задержку нажатия на кнопку ссылку, скажем не чаще раза в 3 секунды:

setTimeout(
$("#key").click(function(){
alert("ok");
}), 3000);


Как то не доходили руки до setTimeout вроде так же как то должно быть?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
sergeiss
Не так. Делаешь обычный джейкверевский обработчик нажатия кнопки. Внутри него делаешь вызов setTimeout, в котором уже вызываешь функцию, выполняющую нужные тебе действия.
Думаю, что этого тебе достаточно, чтобы код написать smile.gif Он того же уровня сложности, что у тебя уже сделан.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
GET
function time(time=0;) 
$("#key").click(function(){
if(time==0){
alert'ok';
time=1;
}

setTimeout(time(),3000)
});


Да сделал примерно так вот, чтоб не расписывать...

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
sergeiss
Нет!!!! Не так. А вот так:
Цитата (sergeiss @ 17.01.2014 - 23:19)
Делаешь обычный джейкверевский обработчик нажатия кнопки. Внутри него делаешь вызов setTimeout, в котором уже вызываешь функцию, выполняющую нужные тебе действия.

ВНУТРИ обработчика вызываешь setTimeout, а уже эта функция вызывает основной обработчик.
Если не ошибся в коде, то так:
$("#key").click(function(){

setTimeout( alert( 'OK') ,3000)
});


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
GET
sergeiss

Ну а почему не так?

Распишу:
var time=0;
$("#key").click(function(){
function time(){time=0;}//переопределяет time

if(time==0 || a==b)//a==b еще одно условие, которое не зависит от t
{
alert ('ok');
time=1;// не дает работать
}

setTimeout(time(),3000);//через 3 секунды вызовет time и переназначит
});


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
sergeiss
Цитата (ABC @ 17.01.2014 - 23:43)
Ну а почему не так?

Ты выполни мой код и свой код, о результатах расскажешь... Практика - лучший ответчик на такие вопросы smile.gif Только мой код не меняй, а возьми "как есть".

Впрочем... Мой код даст задержку выполнения нажатия на 3 секунды. Ты это хочешь получить или что-то другое?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
GET
sergeiss

Да я выполнил, мой работает. Думаю твой тоже все же понятно вроде...или нет. smile.gif

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
sergeiss

У меня несколько кнопок делающих айкс запросы ...для некоторых из них нежедательно многотыканье, а для других можно

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
Цитата
а для других можно

это a==b



_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
sergeiss
Я посмотрел, понял, что не совсем правильно тебя понял :)

Да, можно сделать, как ты сделал. Но как-то это "не красиво". И не универсально - ты не назначишь такой обработчик для нескольких кнопок, причем так, чтобы у каждой из них был свой таймер.

Допустим, у тебя не одна кнопка, а целая их группа... Можно "красивее" и универсальнее сделать.

<input class="press-delay" data-time="1" ...>



<script>
$('.press-delay').click( function() {
var time=$(this).data('time');
if( time == 0 )
return;

time=0;
var key=this;
setTimeout( function() { time =1;}, 3000);

</
script>
});


Вот так попробуй. Можно даже для каждой кнопки установить индвидуальный таймер :) Если записать его в data.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
GET
sergeiss

Спасибо. smile.gif

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
sergeiss
Да на здоровье... Кстати, там "очепятка" была, в имени переменной в одном месте. Я ее исправил.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
GET
Цитата
там "очепятка" была


да...да я видел, спасибо.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.