javascript - jQuery 自定义扩展抛出不是函数错误

标签 javascript jquery

当我尝试运行这个函数时

(function($) {
    $.fn.urlHash = function()
    {
        return document.URL.substr(document.URL.indexOf('#')+1);
    };
})(jQuery);

像这样 $.urlHash() 我在 Google Chrome 控制台中收到一条错误消息,提示 urlHash() 不是函数

据我所见(通过谷歌搜索),扩展名编写正确。我做错了什么?

最佳答案

因为您正在访问该方法作为 jQuery 对象的静态方法

(function ($) {
    $.urlHash = function () {
        return document.URL.substr(document.URL.indexOf('#') + 1);
    };
})(jQuery);

当您将属性添加到 $.fn 时,它会添加到 jQuery 对象的原型(prototype)对象中,因此您需要使用 jQuery 对象的实例来访问它

关于javascript - jQuery 自定义扩展抛出不是函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31156477/

相关文章:

javascript - 如何在 Postback 上维护 UI 元素状态? (ASP.NET MVC)

javascript - 单击更改 Bootstrap Glyphicon

javascript 替换 + classid

JavaScript表单验证函数: Looping each item

jquery - 使用 jQuery 组合两个事件

javascript - 如何在javascript中创建自定义对象的公共(public)常量实例?

javascript - 如何将此 Python 代码转换为 Node.js

jquery - 选择具有一定内容的元素作为直接子节点

javascript - 异步调用内的同步调用

javascript - 带延迟的 svg 文本动画