jquery .map不适用于IE 10

时间:2013-05-02 00:59:34

标签: internet-explorer-10 jquery

我有这个jquery代码:

$("#tf_zoom").live("click", function () {
    var n = $(".tf_thumbs").find("img").attr("src");
    var modelid = n.substr(43);
    $.post("models/get_gallery", {
        "modelid": modelid
    }, function (data) {
        var imagespathes = $(data).map(function (key, url) {
            return ({
                href: '<?php echo base_url();?>assets/uploads/files/' + url
            });
        });
        console.log(imagespathes);
        $.fancybox.open(imagespathes);
    }, "json");
});

这是我的HTML:

<div id="tf_thumbs" class="tf_thumbs">
    <span id="tf_zoom" class="tf_zoom"></span>
    <img id="dynam" src="<?php echo base_url();?>assets/uploads/files/<?php echo $firstthumb;?>" alt="Thumb1"/>
</div>

好的,现在我的问题是这个代码在 IE 10 上无法正常运行,而且令人惊讶的是它在 IE 9,IE 8,IE 7 上的魅力就像< strong> FF和谷歌浏览器

我读了很多关于这个问题的事情,但对我没什么用。 那么,有没有解决方案呢。 非常感谢你的帮助。

更新1 :我使用的是jquery版 1.7

2 个答案:

答案 0 :(得分:2)

也许这个提示会对你有所帮助:

我注意到.map( $("select").get(0).options )在IE10中不起作用,但.map( $("select:first >option") )会起作用。这是因为在ie10 .options中返回带有迭代选项的select节点。

那么看看IE10中返回的数据是什么,也许它也不是数组。如果是这样,也许你可以做一些像$(new Array(data)).map(...那样满足所有浏览器的东西

答案 1 :(得分:-1)

你应该使用静态地图功能:

$.map(data, function(obj, index){...})

请参阅文档here

    // If data looks like this: [{ url: 'TestUrl' }]
    // This should work:

    var imagespathes = $.map(data, function(element){
        return { href: '<?php echo base_url();?>assets/uploads/files/' + element.url };
    });