首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WordPress AJAX post加载后触发Flexslider

WordPress AJAX post加载后触发Flexslider
EN

Stack Overflow用户
提问于 2017-02-17 20:26:13
回答 1查看 398关注 0票数 0

我正在通过Ajax加载帖子,每个帖子都有一个Flexslider(2) carousel,它没有加载。我认为这可能与post的时间有关- Flexslider脚本在post加载之前运行,所以它不会被触发。我尝试了一个回调函数,并将Flexslider绑定到成功的调用,但无法使其工作。有没有一种理想的方法来做到这一点?

(Flexslider在Ajax内容之外的页面上运行良好。)

代码语言:javascript
复制
 jQuery(document).ready(function ($) {

        $(".events_link").click(function () {
            var eventname = $(this).attr('id');
            var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
            jQuery.ajax({
                type: 'POST',
                url: ajaxurl,
                data: {
                    action: "all_event",
                    eventname: eventname
                },
                success: function (response) {
                    $(".events-thumbs").html(response);
                }
            });

        });

        $('.flexslider').flexslider({
            animation: "slide",
            slideshow: "false",
            animationLoop: true,
            itemWidth: 192,
            itemMargin: 9,
            controlNav: true,
            directionNav: false
        });

    });

在成功回调中添加flexslider成功了!

代码语言:javascript
复制
jQuery(document).ready(function ($) {

        $(".events_link").click(function () {
            var eventname = $(this).attr('id');
            var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
            jQuery.ajax({
                type: 'POST',
                url: ajaxurl,
                data: {
                    action: "all_event",
                    eventname: eventname
                },
                success: function (response) {
                    $(".events-thumbs").html(response);
                    $('.flexslider').flexslider({
                        animation: "slide",
                        slideshow: "false",
                        animationLoop: true,
                        itemWidth: 192,
                        itemMargin: 9,
                        controlNav: true,
                        directionNav: false
                    });
                }
            });

        });

    });
EN

回答 1

Stack Overflow用户

发布于 2017-02-17 22:44:20

解决方案是将flexslider函数作为另一个函数添加到Ajax成功调用中:

代码语言:javascript
复制
jQuery(document).ready(function ($) {

    $(".events_link").click(function () {
        var eventname = $(this).attr('id');
        var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
        jQuery.ajax({
            type: 'POST',
            url: ajaxurl,
            data: {
                action: "all_event",
                eventname: eventname
            },
            success: function (response) {
                $(".events-thumbs").html(response);
                $('.flexslider').flexslider({
                    animation: "slide",
                    slideshow: "false",
                    animationLoop: true,
                    itemWidth: 192,
                    itemMargin: 9,
                    controlNav: true,
                    directionNav: false
                });
            }
        });

    });

});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42297948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档