2

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

Uncaught TypeError: object is not a function  

它指的是这行代码

})(jQuery);

代码

   $(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);  

有谁知道那个错误是什么,我该如何解决谢谢

4

1 回答 1

9

你要么想做

(function ($) { ... })(jQuery);

如果您希望您的代码立即运行,

或者

jQuery(function ($) { .... });

让您的代码在文档就绪状态下运行。

您指的是 $("button"),因此需要文档树可用。所以使用第二个版本。一个更好的解决方案是使用 jQuery 函数“delegate”,它看起来像这样:

jQuery(function ($) {
    $(document).delegate("button", "click", function (ev) { ... });
});
于 2012-06-25T14:24:52.027 回答