2013-11-22 4 views
0

Я использую тему wordpress, которая имеет множество параметров стиля и т. Д., Которая считывается файлом header.php и на самом деле стилирует и некоторые вещи js на основе этого. Например, вот фрагмент того, что он выглядит следующим образом:Вызов функции window.load после завершения AJAX

jQuery(window).load(function($) { 
<?php if($data['blog_pagination_type'] == 'Infinite Scroll' || is_page_template('demo-gridblog.php') || is_page_template('demo-timelineblog.php')): ?> 
    jQuery('#posts-container').infinitescroll({ 
     navSelector : "div.pagination", 
         // selector for the paged navigation (it will be hidden) 
     nextSelector : "a.pagination-next", 
         // selector for the NEXT link (to page 2) 
     itemSelector : "div.post", 
         // selector for all items you'll retrieve 
     errorCallback: function() { 
      jQuery('#posts-container').isotope('reLayout'); 
     } 
    } 
    }); 
}); 

Это фрагмент, но есть намного больше. Это в моем файле header.php. Затем я выполняю некоторые вызовы AJAX в файле custom.js. Это выглядит примерно так:

var term_id = $(this).attr('id'); 
$.ajax({ 
    url: ajaxurl, 
    type: "POST", 
    async: true, 
    cache: true, 
    data: { 
    action: 'show_blog', 
    term_id: term_id 
    }, 
    success: function(data) { 
     jQuery(window).load(); 
     $('.blog-wrapper').fadeOut(1000, function() { 
      $('.blog-wrapper').html(data); 
      $(".blog-wrapper").fadeIn(1000); 
     }); 
    } 
}); 

Я пытался использовать jQuery(window).load(); но JS из моего файла header.php не получает срабатывает. Как я могу повторно вызвать код window.load в моем файле header.php после вызова AJAX?

jQuery(window).load(function($) { 
    do_styling_function(); 
}); 

Тогда в моем вызове AJAX я также могу просто позвонить do_styling_function();: мне нужно поставить его в другую функцию, а затем сделать что-то вроде этого?

+1

[ 'JQuery (окно) .trigger ('нагрузки');'] (http://api.jquery.com/trigger) – Blazemonger

+1

Или 'jQuery (window) .triggerHandler ('load')' http://api.jquery.com/triggerHandler/ –

+0

@Blazemonger Если вы хотите выразить ответ, я могу его принять. То, что вы сказали, отлично поработало. Я добавил полную функцию к моему вызову ajax и положил его туда, и он работал отлично. Мне пришлось удалить функции fadein и fadeout, но в функции успеха, чтобы заставить его работать. – user1048676

ответ

1

Просто вызвать onload событие обычным способом:

jQuery(window).trigger('load'); 
Смежные вопросы