Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как запретить реагирование на частые нажатия 
:(
    Опции темы
MakTpaxep
Дата 16.8.2013, 04:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 25.11.2010

Репутация: нет
Всего: нет



Код


$(".slider-control-right").click(function(){
        $(".slider-slides").children('#slide' + slider_counter).fadeOut(500,function(){    
            slider_counter++;
            if(slider_counter == (slider_slides_count+1))
                slider_counter = 1;
            $(".slider-slides").children('#slide' + slider_counter).fadeIn(500);
        });
    });


Если на стрелку .slider-control-right нажимать очень часто, то слайдер ведёт себя неадекватно. Я хочу это запретить на время смены слайдов.
Пробовал что-то типа такого, объясните почему переменная push_defense в начале функции всегда равна 0? Она же вроде глобальная
Код

    var slider_counter = 1;
    var slider_slides_count = 8;
    var push_defense = 0;
    $(".slider-control-left").click(function(){
        if(push_defense == 1)
            return;
        push_defense = 1;
        $('.block1').html(push_defense);
        $(".slider-slides").children('#slide' + slider_counter).fadeOut(500,function(){
            slider_counter--;
            if(slider_counter == 0)
                slider_counter = slider_slides_count;
            $(".slider-slides").children('#slide' + slider_counter).fadeIn(500);
        });
        push_defense = 0;
    });

PM MAIL   Вверх
ksnk
Дата 16.8.2013, 08:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



а так?
Код

                        ... slider_counter).fadeIn(500, function(){push_defense = 0;});
        });
        //push_defense = 0;
    });



fadeIn и fadeOut не выполняют анимацию сами, они просто помещают нужную функцию в "анимационную машину" jQuery и сразу возвращаются. так что push_defense  вполне законно был ==0

Это сообщение отредактировал(а) ksnk - 16.8.2013, 08:44


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
MakTpaxep
Дата 16.8.2013, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 25.11.2010

Репутация: нет
Всего: нет



Цитата

fadeIn и fadeOut не выполняют анимацию сами, они просто помещают нужную функцию в "анимационную машину" jQuery и сразу возвращаются. так что push_defense  вполне законно был ==0

но так всё равно не то:

Код

    var slider_counter = 1;
    var slider_slides_count = 8;
    var push_defense = 0;
    $(".slider-control-left").click(function(push_defense){
        //$('.block1').html(push_defense);
        alert(push_defense);
        if(push_defense == 1)
            return;
        push_defense = 1;        
        $(".slider-slides").children('#slide' + slider_counter).hide(500,function(){
            slider_counter--;
            if(slider_counter == 0)
                slider_counter = slider_slides_count;
            $(".slider-slides").children('#slide' + slider_counter).show(500);
        });
    });

alert выводит [object Object]
PM MAIL   Вверх
olgaturist
Дата 16.8.2013, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 15.8.2013
Где: Москва, Тропаревс кая улица

Репутация: нет
Всего: нет



Спасибо за подсказску
PM MAIL WWW   Вверх
ksnk
Дата 16.8.2013, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(MakTpaxep @  16.8.2013,  14:15 Найти цитируемый пост)
click(function(push_defense){

Какой, однако, забавный способ отстрелить себе ногу smile 

Зачем там push_defense?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
MakTpaxep
Дата 16.8.2013, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 25.11.2010

Репутация: нет
Всего: нет



Цитата

Какой, однако, забавный способ отстрелить себе ногу 

Я уж и не помню как мне это пришло в голову))
Ваш совет помог. Спасибо! Рабочий код получился такой:
Код

    var slider_counter = 1;
    var slider_slides_count = 8;
    var push_defense = 0;
    $(".slider-control-left").click(function(){
        if(push_defense == 1)
            return;
        push_defense = 1;        
        $(".slider-slides").children('#slide' + slider_counter).hide(500,function(){
            slider_counter--;
            if(slider_counter == 0)
                slider_counter = slider_slides_count;
            $(".slider-slides").children('#slide' + slider_counter).show(500);
            push_defense = 0;    
        });
    });

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.