指定插件中的选项设置不起作用?

时间:2012-06-04 07:39:04

标签: jquery jquery-plugins plugins

我是jquery插件的新手。我需要指定totalWidth作为选项,以便我可以根据需要更改scrollWidth。有人能帮助我吗?

(function( $ ) {
    $.fn.scrollAnimation = function(options) {
            var totalWidth;
            var settings = $.extend( {
                                        'totalWidth'         :'totalWidth'
                                    }, options);

            return this.each(function() {

                    var element = $(this);
                    var offset_1 = $("ul li.list:first-child",element).position().left;
                    var offset_2 = $("ul li.list:nth-child(2)",element).position().left; 
                    var totalWidth =(offset_2-offset_1);





            $(".abc",element).click(function() {
                $(".images",element).not(":animated").animate({"scrollLeft":"-="+totalWidth},300);
                return false;
            });



            $(".def",element).click(function() {
                $(".images",element).not(":animated").animate({"scrollLeft":"+="+totalWidth},300);
                return false;
            });
         });
      };
})( jQuery ); 

1 个答案:

答案 0 :(得分:0)

像这样添加设置到您的插件

$.fn.scrollAnimation.settings={property:'value',totalWidth:'somevalue'};

这将是插件的默认设置。

您可以使用$ .extend将用户给定选项和$ .fn.scrollAnimation.settings的属性合并到一个对象中,该对象优先于用户给定的选项

$.extend({},$.fn.scrollAnimation.settings,options);

所以你的更新代码就像

(function( $ ,win, doc) {
    $.fn.scrollAnimation = function(options) {
            var totalWidth;
            var localsettings = $.extend( {},$.fn.scrollAnimation.settings,options);
                    ...
                    ...
                    ...
                 };

      $.fn.scrollAnimation.settings={property:'value',totalWidth:'somevalue'};
})( jQuery ,window,document,undefined);