javascript - jquery插件未捕获类型错误: object is not a function

标签 javascript jquery

我刚刚创建了我的第一个 jQuery 插件,它非常简单 slideToggle 两个 Div ,代码工作正常,它做了我想要的事情想要,问题是我在控制台收到一条 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);  

有谁知道这个错误是什么以及如何修复它,谢谢

最佳答案

你要么想做

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

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

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

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

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

jQuery(function ($) {
    $(document).delegate("button", "click", function (ev) { ... });
});

关于javascript - jquery插件未捕获类型错误: object is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11191033/

相关文章:

使用自定义属性进行 Javascript 切换

javascript - 在后端脚本后重定向到一个新的 url

javascript - 如何将特定 HTML 文件引用到 JSON 文件中的特定数组

javascript - 如何将链接更改为一段文本或某种带有原型(prototype)的非锚定元素

javascript - 节流计算属性的 Jasmine 规范

javascript - jQuery 跳转滚动

javascript - 如何让 UIKit 按钮组在表单中充当单选按钮

jquery - 负一 (-1) 通过 jQuery Validate 插件中的验证。使固定?

jquery - 如何动态禁用jquery日历中的特定日期并使另一个日历maxdate取决于该日历?

javascript - 使用 ajax 和 for 循环将多个 JSON 对象一一推送/添加到 API