【问题标题】:Why is the plugin not executing为什么插件没有执行
【发布时间】:2016-10-12 13:55:56
【问题描述】:

我创建了一个基本滑块:https://jsfiddle.net/n68pgfvs/

我想做的是,我不想将它变成一个类,而是将它转换成一个插件,这样我就可以在同一页面上多次使用它。

我正在浏览此页面以创建一个简单的开头:https://learn.jquery.com/plugins/basic-plugin-creation/

所以我想出了以下(作为测试):

<div>
    <div class="test1">This is a test</div>
</div>
<script>
    $(".test1").SliderS({
        color: "#00FF00"
    });
</script>
<script>
    (function ($) {
        $.fn.SliderS = function (options) {
            var settings = $.extend({
                autoSlide: 1,
                timeoutSet: 4000,
                displayNav: 1,
                color: "#F00FFF"
            }, options);

            return this.css({ color: settings.color });
        };
    }(jQuery));
</script>

根据教程,它应该改变文本颜色,但它没有。

我该如何解决?

另外,将我的静态代码从我的滑块转换为插件以多次使用的最佳方法是什么?

【问题讨论】:

  • 监控您的控制台错误。 “SliderS 不是函数” 错误应该是一个大线索
  • 没有收到任何错误,但现在已修复。谢谢。

标签: jquery html plugins


【解决方案1】:

您在定义插件之前调用了它。切换顺序,效果很好:

(function($) {
  $.fn.SliderS = function(options) {
    var settings = $.extend({
      autoSlide: 1,
      timeoutSet: 4000,
      displayNav: 1,
      color: "#F00FFF"
    }, options);

    return this.css({
      color: settings.color
    });
  };
}(jQuery));

$(".test1").SliderS({
  color: "#00FF00"
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <div class="test1">This is a test</div>
</div>

【讨论】:

  • 谢谢。有什么建议我应该如何处理我的滑块代码?
  • 这个问题对 StackOverfow 来说有点太宽泛了。您需要尝试自己将其转换为插件,然后如果您对您的实施有具体问题,请再回来。
猜你喜欢
  • 2014-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-25
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
相关资源
最近更新 更多