jquery插件Uncaught TypeError:object不是函数

Min*_*iel 2 javascript jquery

我刚刚创建了我的第一个jQuery plugin,它非常简单,slideToggle两个Divs,代码工作正常,它做我想要的,问题是我ERROR在控制台收到一条消息说:

Uncaught TypeError: object is not a function  
Run Code Online (Sandbox Code Playgroud)

它指的是这行代码

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

码

   $(function($) {
            $.fn.toggleDiv = function(opt) {
                var options = $.extend({}, $.fn.toggleDiv.objectOptions, opt);
                return this.each(function() {
                    if (options.animation == true) {
                        $(this).slideToggle();

                    } else {
                        $(this).toggle();

                    }
                });
            };

            $.fn.toggleDiv.objectOptions = {
                animation: false
            };
            $("button").click(function() { $("#Div1, #Div2")
             .toggleDiv({animation : fa}); return false; });
        })(jQuery);  
Run Code Online (Sandbox Code Playgroud)

有没有人知道这是什么错误,我该如何解决它,谢谢

Sea*_*rle 9

你要么想做

(function ($) { ... })(jQuery);
Run Code Online (Sandbox Code Playgroud)

如果你想让你的代码立即运行,

要么

jQuery(function ($) { .... });
Run Code Online (Sandbox Code Playgroud)

使您的代码在文档就绪时运行.

您指的是$("按钮"),因此需要文档树可用.所以使用第二个版本.一个更好的解决方案是使用jQuery函数"委托",这看起来像这样:

jQuery(function ($) {
    $(document).delegate("button", "click", function (ev) { ... });
});
Run Code Online (Sandbox Code Playgroud)