Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Повторный вызов функции при перезагрузке блока страницы ajax (https://javascript.ru/forum/misc/74908-povtornyjj-vyzov-funkcii-pri-perezagruzke-bloka-stranicy-ajax.html)

komned37 15.08.2018 18:10

Повторный вызов функции при перезагрузке блока страницы ajax
 
Доброго времени суток!

Помогите решить проблему повторного запуска функции при перезагрузке блока ajax-ом

Код скрипта следующий:
$(".proektu .items .item .items-nav .arrow-right").click(function prnext(){     
    $(this).closest('.item').fadeOut(100).removeClass('active');  
    $(this).closest('.item').next(".item").fadeIn(100).addClass('active');
    $('.proektu .items .item.active .slides').slick({
        dots: true,
        infinite: true,
        speed: 300,        
      });   
  });

В этом же файле перезагружая блок аяксом и пытаюсь пытаюсь повторно вызвать функцию prnext, но ни чего не происходит
Код
jQuery('#tipp-select').on('change', function(){
        //собираем данные из data-атрибутов
        var tipp = jQuery(this).find('option:selected').data('tipp-id');
        var country = jQuery("#country-select").find('option:selected').data('country-id');
        var kateg = jQuery('#kateg-select').find('option:selected').data('kateg-id');
 $.ajax({
                  type: "POST",
                  url: window.wp_data.ajax_url, 
                  data : {
                      action : 'get_items', 
                      tipp_id : tipp, 
                      country_id : country, 
                      kateg_id : kateg
                  },
         success: function (items) {
            jQuery('#ajax-items').html(items); 
 prnext()
 }             
        }); 
    });

j0hnik 16.08.2018 00:00

Цитата:

Сообщение от komned37
.parent().parent().parent().parent()

может лучше https://api.jquery.com/closest/

komned37 16.08.2018 07:45

За функцию спасибо, сократила код, но сам скрипт так и не заработал, если втыкаю руками весь скрипт повторно, то все работает,а если через функцию то нет и в консоли пишет что функция не определена

Artur_Hopf 16.08.2018 08:01

komned37,

Так что ли :-?
function prnext() {
       $('.proektu .items .item.active .slides').slick({
            dots: true,
            infinite: true,
            speed: 300,        
       });
}

$(".proektu .items .item .items-nav .arrow-right").click(function {     
      $(this).parent().closest('.item').fadeOut(100).removeClass('active');  
      $(this).parent().closest('.item').next(".item").fadeIn(100).addClass('active');
      prnext();
 });

$('#tipp-select').on('change', function(){
        //собираем данные из data-атрибутов
        var tipp = jQuery(this).find('option:selected').data('tipp-id');
        var country = jQuery("#country-select").find('option:selected').data('country-id');
        var kateg = jQuery('#kateg-select').find('option:selected').data('kateg-id');
     
        $.post( "window.wp_data.ajax_url", { action : 'get_items', tipp_id : tipp,country_id:  country, kateg_id: kateg} )
        .done(function(items) {
               jQuery('#ajax-items').html(items);
               prnext();
        });         
 });

komned37 16.08.2018 08:45

нет, не до удалял немного
$(".proektu .items .item .items-nav .arrow-right").click(function prnext(){     
    $(this).closest('.item').fadeOut(100).removeClass('active');  
    $(this).closest('.item').next(".item").fadeIn(100).addClass('active');
    $('.proektu .items .item.active .slides').slick({
        dots: true,
        infinite: true,
        speed: 300,        
      });   
  });
jQuery('#tipp-select').on('change', function(){
        //собираем данные из data-атрибутов
        var tipp = jQuery(this).find('option:selected').data('tipp-id');
        var country = jQuery("#country-select").find('option:selected').data('country-id');
        var kateg = jQuery('#kateg-select').find('option:selected').data('kateg-id');
      $.ajax({
                  type: "POST",
                  url: window.wp_data.ajax_url, 
                  data : {
                      action : 'get_items', 
                      tipp_id : tipp, 
                      country_id : country, 
                      kateg_id : kateg
                  },
         success: function (items) {
            jQuery('#ajax-items').html(items); 
            prnext()
         }             
        }); 
    });

j0hnik 16.08.2018 08:47

Цитата:

Сообщение от Artur_Hopf
$(this).parent().closest('.item')

$(this).closest('.item')

j0hnik 16.08.2018 08:52

Цитата:

Сообщение от komned37
но ни чего не происходит

что в консоле?

komned37 16.08.2018 09:48

Цитата:

Сообщение от j0hnik (Сообщение 492866)
что в консоле?

ReferenceError: prprev is not defined

j0hnik 16.08.2018 10:06

komned37,

$(".proektu .items .item .items-nav .arrow-right").click(prnext);

	function prnext(){
		$(this).closest('.item').fadeOut(100).removeClass('active');  
		$(this).closest('.item').next(".item").fadeIn(100).addClass('active');
		$('.proektu .items .item.active .slides').slick({
			dots: true,
			infinite: true,
			speed: 300,        
		});
	}


Часовой пояс GMT +3, время: 10:24.