在Internet Explorer中单击事件内的自定义jQuery插件未定义

时间:2013-06-10 04:27:02

标签: jquery internet-explorer jquery-plugins internet-explorer-8

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

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

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

1 个答案:

答案 0 :(得分:1)

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

为了确保它只是与插件本身的冲突,而不是他们嵌入的jQuery版本,我尝试自己加载该版本(1.8.3)并且它工作正常。