javascript - Owl Carousel 插件在事件点击内不起作用

标签 javascript jquery carousel owl-carousel

我需要在点击事件中初始化 Owl Carousel ,如下代码所示,当我第一次点击时它可以工作,但是当我再次点击它(在事件div上)时它根本不起作用。我怎样才能做到这一点?有没有办法重置 Owl Carousel ?

我将完整的代码添加到本文的最后部分,以更好地理解我的 pb 并对其进行测试。

你能帮我解决这个问题吗?我真的需要这个。

提前致谢,

CAFC

源 Owl Carousel :http://owlgraphic.com/owlcarousel/demos/customJson.html

$('#XX').click(function(e) {

    e.PreventDefault;

    $("#owl-demo").owlCarousel({
        jsonPath: 'json/customData2.json',
        jsonSuccess: customDataSuccess
    });

    function customDataSuccess(data) {

        var content = "";
        for (var i in data["items"]) {

            var img = data["items"][i].img;
            var alt = data["items"][i].alt;

            content += "<img src=\"" + img + "\" alt=\"" + alt + "\">"
        }

        $("#owl-demo").html(content);
    }

});

我的完整代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Owl Carousel - Dynamic content via JSON</title>

    <!-- Owl Carousel Assets -->
    <link href="../owl-carousel/owl.carousel.css" rel="stylesheet">
    <link href="../owl-carousel/owl.theme.css" rel="stylesheet">


    <script src="../assets/js/jquery-1.9.1.min.js"></script>
    <script src="../owl-carousel/owl.carousel.js"></script>


    <!-- Demo -->

    <style>
        #owl-demo .item {
            background: #a1def8;
            padding: 10px 0px;
            display: block;
            margin: 5px;
            color: #FFF;
            -webkit-border-radius: 3px;
            -moz-border-radius: 3px;
            border-radius: 3px;
            text-align: center;
        }
    </style>


    <script>
        $(document).ready(function() {



            $('#XX').click(function(e) {


                $("#owl-demo").owlCarousel({
                    jsonPath: 'json/customData2.json',
                    jsonSuccess: customDataSuccess
                });

                function customDataSuccess(data) {



                    var content = "";
                    for (var i in data["items"]) {

                        var img = data["items"][i].img;
                        var alt = data["items"][i].alt;

                        content += "<img src=\"" + img + "\" alt=\"" + alt + "\">"
                    }

                    $("#owl-demo").html(content);
                }



            });




        });
    </script>




</head>

<body>


    <div id="owl-demo"></div>

    <div id='XX'>Click HERE!</div>

</body>

</html>

最佳答案

给你:

JS:

$(document).ready(function () {
    var owl = false;
    $('#XX').click(function (e) {
        if (owl) {
            $("#owl-demo").data('owlCarousel').reinit({
                jsonPath: '/echo/json',
                jsonSuccess: customDataSuccess
            });
        } else {
            owl = true;
        }
        $("#owl-demo").owlCarousel({
            jsonPath: '/echo/json',
            jsonSuccess: customDataSuccess
        });

        function customDataSuccess(data) {
            console.log('loading Data');

            data = testJSON;

            var content = "";
            for (var i in data["items"]) {

                var img = data["items"][i].img;
                var alt = data["items"][i].alt;

                content += "<img src=\"" + img + "\" alt=\"" + alt + "\">";
            }

            $("#owl-demo").html(content);
        }
    });
});

reinit 的方法可以在文档底部的 5 下找到。 Owl 数据方法

演示:http://jsfiddle.net/robschmuecker/pLvdx8xx/

关于javascript - Owl Carousel 插件在事件点击内不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25170714/

相关文章:

javascript - Backbone.js - 给出 View 事件处理程序调用的严格顺序

javascript - 来自局部变量的全日历刷新事件

html - 在 jquery onclick 按钮中使用条件

css - Bootstrap 轮播控件进入其他 Div

javascript - Bootstrap 轮播 : Indicators not cycling

javascript - 如何在javascript中找到数组最大值的所有索引?

javascript - CSS - 固定菜单按钮在滚动时显示

jQuery 3D 轮播?

javascript - jQuery 附加代码不会附加我的 div

jquery - jquery ajax 中的 Url.Action : Second parameter not passed