Функция в ajax-файле выполняется несколько раз - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть несколько «переключателей», когда я открываю каждый из них, я вызываю функцию ajax, которая выполняет другую функцию (с действием щелчка). Но если я открываю два переключателя, функция щелчка вызывается дважды.

У меня есть PHP-код, вызывающий эту функцию:

<script type="text/javascript">
$('.slide_action').click(function(){
    var val = $(this).attr('data')
    var acao = $(this).attr('acao')
    if ($(this).attr('busca') == 1) { //abre a primeira vez
        $(this).attr('busca',0);
        $('#slide_react_'+val).html('<div class="text-center"><img class="loadcalnp" src="<?=base_url('assets/img/load_calendario.GIF')?>" alt="carregando" style="margin-bottom:20px;"></div>');
        $(".seta_direita_"+val).hide();
        $(".seta_baixo_"+val).show();
        $('div[data='+val+']').attr('display','open')
        $('#slide_react_'+val).slideToggle();
        $.post('<?=base_url('assessoria_emme/acoesteste')?>',{evento:acao},function(data){
            $('#slide_react_'+val).html(data);
            $('#slide_det_react_'+val).show();
            load()
        })
    } else { //proximos cliques
        // $('#slide_react_'+val).html('');
        $('#slide_react_'+val).slideToggle();
        if($('div[data='+val+']').attr('display') == 'open'){ //fechou
            $(".seta_direita_"+val).show();
            $(".seta_baixo_"+val).hide();
            $('div[data='+val+']').attr('display','close')
        } else { //abriu
            $(".seta_direita_"+val).hide();
            $(".seta_baixo_"+val).show();
            $('div[data='+val+']').attr('display','open')
        }
    }
})
</script>

Сценарий вызывает функцию (контроллер), которая вызывает файл ajax (просмотр)

В файле ajax вызывается другая функция:

$('.click').click(function(){
    var val = $(this).attr('cod')
    console.log(val)
    $('.slide_'+val).slideToggle();
      if($('div[cod='+val+']').attr('display') == 'open'){
        $(".aberta_"+val).show();
        $(".fechada_"+val).hide();
        $('.tit_'+val).css("font-weight", "normal");
        $('div[cod='+val+']').attr('display','close')
      } else {
        $(".aberta_"+val).hide();
        $(".fechada_"+val).show();
        $('.tit_'+val).css("font-weight", "bold");
        $('div[cod='+val+']').attr('display','open')
      }
  })
</script>

Этот сценарий выполняется несколько раз, и переключение открывается и закрывается одним щелчком мыши.

Я думаю, что один щелчок работает со всеми уже открытыми файлами ajax.

Как я могу решить это?

...