1

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

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

变量似乎没有问题$(this),它很好,因为您可以用任何选定的元素替换它,并且问题仍然存在,myFunc即在单击事件函数中未定义。

4

1 回答 1

1

事实证明,这段代码在 IE8 下运行得很好,问题在于插件(特别是 Freemake YouTube 下载器)。我使用 IE Developer Tools 中的 Call Stack 按钮(非常有用)来查找在我的函数之后调用的内容,我看到函数是从我之前假设的 jQuery 的缩小版本中调用的,但仔细检查后发现是对于我没有加载的版本。进一步滚动到文件中(实际上根本不是文件,而是加载的 JS 块)我看到了自动安装 IE 插件的 YouTube 下载器的功能(我从不使用 IE,但它可能会导致其他冲突,如果我会注意到确实使用了它),所以去禁用该插件,然后,一切都按预期工作。

为了确保它只是与插件本身而不是与他们嵌入的 jQuery 版本发生冲突,我尝试自己加载该版本(1.8.3)并且效果很好。

于 2013-06-10T16:57:01.993 回答