Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2018, 06:31
Интересующийся
Отправить личное сообщение для komned37 Посмотреть профиль Найти все сообщения от komned37
 
Регистрация: 23.07.2018
Сообщений: 18

При повторном вызове скрипт выполняется два-три раза
Доброго времени суток!

Есть всплывающая форма, которая по клику запускается и в ней работает навигация по изображениям. Когда закрываю ее и повторно запускаю, то скрипт выполняющий навигацию выполняется 2 раза, если еще раз закрыть и открыть, то уже три. Если я правильно понял, то дело в кеше, его нужно как то чистить, но только для отдельного блока.
код такой
$('.port-item').mouseenter(function() {
      $(this).children('.port-item-button').fadeIn("slow");    
                  
    });
    $('.port-item').mouseleave(function() {
       $(this).children('.port-item-button').fadeOut("slow");    
                  
    });

    $('.port-item-button').on("click",function(){
      $(".fon").fadeIn(200);
      $(this).addClass('wrap-popup');
      $('.wrap-popup + .port-item-wrap').fadeIn("slow").addClass("active");

          $(".port-item-wrap.active .port-wrap-img img").not(":first").hide();
            $(".port-item-wrap.active .port-wrap-galery img").click(function() {
              $(".port-item-wrap.active .port-wrap-galery img").removeClass("active").eq($(this).index()).addClass("active");
              $(".port-item-wrap.active .port-wrap-img img").hide().removeClass("act").eq($(this).index()).fadeIn(100).addClass("act");              
            }).eq(0).addClass("active");

            $(".port-item-wrap.active .brr i").click(function(){
               var 
                    slide = 0;
                    slide = $(".port-item-wrap.active .port-wrap-galery img.active").index(),
                   slideNum = $(".port-item-wrap.active .port-wrap-galery img").length;
              if (slide < slideNum-1) {
              // $(".port-item-wrap.active .port-wrap-galery .active").removeClass("active").next().addClass("active");
              // $(".port-item-wrap.active .port-wrap-img .act").removeClass("act").next().addClass("act").fadeIn(100);
              alert(slide);
              $(".port-item-wrap.active .port-wrap-galery img").removeClass("active").eq(slide+1).addClass("active");
              $(".port-item-wrap.active .port-wrap-img img").hide().removeClass("act").eq(slide+1).fadeIn(100).addClass("act");  


              }
              else {
                return false;
              }
            });
            $(".port-item-wrap.active .br i").click(function(){
              var slide = $(".port-item-wrap.active .port-wrap-galery img.active").index();
              // alert(slide);
              if (slide > 0) {
                $(".port-item-wrap.active .port-wrap-galery .active").removeClass("active").prev().addClass("active");
                 $(".port-item-wrap.active .port-wrap-img .act").removeClass("act").hide().prev().addClass("act").fadeIn(100);
                 var slide = 0;
                
               }

               else {
                return false;
         }
      }); 
         
    });

    //закрытие 

    $(".fon").click(function(){
      $(this).fadeOut(200);
      $(".port-item-wrap.active .port-wrap-galery img").removeClass("active").find(":first").addClass("active");      
      $(".port-item-wrap.active .port-wrap-img img").removeClass("act").addClass("act");
      $(".port-wrap-img img.act").fadeIn(100);

      $(".port-item-wrap").removeClass("active").fadeOut(200);

      $(".port-item-button").removeClass("wrap-popup");

     

    });
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2018, 07:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от komned37
дело в кеше
В установке обработчиков.
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2018, 08:06
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

komned37,
Клик внутри клика у тебя. Вынеси их отдельно друг от друга, кеш тут не причем:
$('.port-item-button').on("click",function(){
});


$(".port-item-wrap.active .port-wrap-galery img").click(function() {
});

$(".port-item-wrap.active .brr i").click(function(){
})
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блок должен перемещаться из одной точки в другую, а при повторном нажатии обратно Ser12345678 jQuery 2 17.07.2012 12:18
При повторном фокусе добавляются события blur и keydown sdaww Events/DOM/Window 2 05.07.2012 15:15
Два блока div разъезжаются при скроллинге окна браузера. call007 jQuery 0 03.04.2011 16:21
SetTimeout не принимает параметр при повторном вызове 2dkott Общие вопросы Javascript 15 08.09.2009 16:37
Помогите создать скрипт замены картинок при наведении курсора. SantaS Я не знаю javascript 3 05.06.2009 12:59