methods - 检查jQuery方法是否存在

标签 methods jquery hashchange

我正在尝试检查 jQuery 是否具有对窗口对象的 .hashchange 方法引用,例如

$(window).data('events').hasOwnProperty('hashchange') ?
    $(window).hashchange(hashChange) :
    window.onhashchange = hashChange;

但我在支持和不支持该功能的浏览器中不断收到“未捕获的类型错误:无法调用未定义的方法'hasOwnProperty'”。有什么想法吗?

最佳答案

一种方法是查看该属性是否只是未定义

if ($(window).hashchange === undefined) {
  // Not defined
}

注意:这实际上检查值是否已定义以及名称。可以使用显式的 undefined 值来定义该值,但这两个值对于您的场景可能是等效的

var x = {}
x.test = undefined;
x.hasOwnProperty("test") // true
x.test === undefined // true

关于methods - 检查jQuery方法是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9472344/

相关文章:

javascript - jQuery/JavaScript 防止重复追加

jquery - $(window) 绑定(bind) hashchange 如何检查部分哈希更改?

javascript - 当用户使用 JQuery 访问哈希链接 (#something) 时如何运行 JavaScript 函数?

JavaScript 每 4 秒运行一次函数多次

java - 将对象传递给方法是否比通过对象调用方法更有效?

javascript - 在 jquery easy ticker 元素 IE8、IE9、IE10、IE11 内的侧边栏中剪切的文本

javascript - JQuery:解析 ajax 调用与嵌入的 str

javascript - IE 对哈希更改发出额外的 GET 请求

具有类特定参数的 C++ 虚方法

c++ - 返回指针的方法,指向在另一个 header 中声明的数组对象,