JQuery扩展对象问题

时间:2015-03-17 11:30:01

标签: javascript jquery jquery-plugins

我有3个与此类似的JQuery插件

 $(function() {

        	var Plugin1/2/3 = {
                fun1:{}
                fun2:{} 
                ...
                init: function()
        		{
        			o = $.extend({}, this);
                }
         
            }

            $.fn.Plugin1/2/3 = function(){

        		return this.each(function(){
                    var obj = Object.create(Plugin1/2/3);
                    obj.init();
                });
        	}
         }

$(document).ready(function() {
   $(document).Plugin1();
   $(document).Plugin2();
   $(document).Plugin3();
});

我到处都使用变量o进行扩展。会发生什么,当创建Plugin3时,上面两个插件的所有对象都会被覆盖,所有显示的信息都是第三个插件。

我正在寻找解决方案,以及一些关于Jquery Advance插件创建的好指南。

Pastebin Link: http://pastebin.com/GJTEEjyt

结果: enter image description here

感谢。

1 个答案:

答案 0 :(得分:3)

当您将var视为理所当然时会发生什么!

init: function() {
    var o = $.extend({}, this);
}

并重新:jQuery插件,我已经using this了一段时间了。看一看。