JavaScript roundslider插件默认设置

时间:2016-07-25 20:23:15

标签: javascript jquery html plugins

我试图使用roundslider plugin

我按照找到here的说明,包含依赖文件,添加HTML并调用插件。

我在以下简单的.html文件中创建了所有这些内容,然后使用chrome打开它。

<html>
    <head>
        <script src="https://cdn.jsdelivr.net/jquery/1.11.3/jquery.min.js"></script>
        <link href="https://cdn.jsdelivr.net/jquery.roundslider/1.3/roundslider.min.css" rel="stylesheet" />
        <script src="https://cdn.jsdelivr.net/jquery.roundslider/1.3/roundslider.min.js"></script>
        <script type="text/javascript">
            $("#slider1").roundSlider({
                sliderType: "default",
                value: 40
            });
        </script>
    </head>
    <body>
        <div id="slider1" class="rslider"></div>
    </body>
</html>

Chrome打开了该页面,但在div中没有​​显示任何内容。我哪里出错了?

jsfiddle示例由roundslider提供。

1 个答案:

答案 0 :(得分:2)

问题是在加载HTML之前调用脚本。结果,$("#slider1")未定义,函数被调用。

或者:

  1. 将您的脚本移至<body><div>
  2. 之后的某个地方的末尾
  3. 将整个JS代码包装在$(function() {})包装器中,等待页面加载,如下所示:

    $(function() {
        $("#slider1").roundSlider({
            sliderType: "default",
            value: 40
        });
    });
    
  4. JSFiddle示例的工作原因是因为代码包含在window.load()函数中,该函数等待加载HTML。 (您可以在JavaScript&gt;加载类型设置下看到此设置。

    在内部,这是他们的脚本(你可以查看开发人员工具以在JSFiddle中看到这个):

    //<![CDATA[
    $(window).load(function(){
    $("#slider1").roundSlider({
        sliderType: "default",
        value: 40
    });
    
    $("#slider2").roundSlider({
        sliderType: "min-range",
        value: 40
    });
    
    $("#slider3").roundSlider({
        sliderType: "range",
        value: "10,40"
    });
    });//]]>