自定义jQuery插件未定义在点击事件在Internet Explorer



当添加自己的自定义插件,然后尝试在单击事件中使用该插件时,IE(或至少IE8)说该函数未定义(错误消息是"对象不支持此属性或方法")。为什么?

    $.fn.myFunc = function() {
        alert( $(this).text() );
    };
    $('p').click(function() {
        $(this).myFunc();
    });

它似乎不是$(this)变量的问题,它得到很好,因为你可以用任何选定的元素替换它,问题仍然是myFunc在单击事件函数中未定义。

事实证明,这段代码在IE8下运行得很好,问题在于一个插件(特别是Freemake YouTube下载器)。我使用IE开发人员工具中的调用堆栈按钮(非常有用)来查找在我的函数之后被调用的内容,并且我看到了从我之前认为是我的缩小版jQuery中调用的函数,但仔细检查它是针对我没有加载的版本。进一步滚动到文件(实际上不是一个文件,而是一个加载的JS块),我看到了一个YouTube下载器的功能,它自动安装了一个IE插件(我从不使用IE,但如果我使用它,它可能会引起其他冲突,我会注意到),所以去禁用那个插件,然后,一切都像预期的那样工作。

为了确保它只是与插件本身冲突,而不是与他们嵌入的jQuery版本冲突,我试着自己加载那个版本(1.8.3),它工作得很好

最新更新