通过jquery对象对象在IE 11.0.2上不起作用

时间:2014-01-13 15:48:15

标签: jquery internet-explorer

我有非常复杂的算法来在我的HTML5脚本中居中主要div(考虑边栏菜单,广告等),它在IE中不起作用。

我设法将问题缩小到20行javascript:

function scaleToView()
{
$('#header').center();
}

$(function()
{
$.fn.extend({center: function ()
{
    pos = 0;
    this.css('left', (pos + (($(window).width() - $(this).outerWidth()) / 2) + 
                                                    $(window).scrollLeft()) + 'px');
    return this;
}});

scaleToView();

$( window ).resize(scaleToView);
});

此处可以使用示例jfiddle:http://jsfiddle.net/ZdaRw/6/

适用于Firefox和Chrome,但不适用于IE 11.0.2(确切版本:11.0.9600.16476)。我在IE中使用了调试器,它吐了很多消息Object does not support method: 'center'(用波兰语)。当我附加调试器时,我发现center方法定义通过执行$(function()生效,但在脚本暂停一段时间后获得undefined

更奇怪的是,它有时(很少)实际上在IE中工作,起初我认为这可能是由于某种数据竞争,但最终我能够将问题缩小到上面的代码行。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

它确实有效。这是糟糕的小提琴!只需在网址末尾添加show并在IE中查看

此处链接:http://jsfiddle.net/ZdaRw/6/show/

此外,如果你愿意,你可以改变jQuery的版本,它就像一个魅力。即使你使用较低版本的jQuery,如1.9.1,仍然有效