4

我有这个 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上不起作用,令人惊讶的是,除了FF 和 Google Chrome之外,它在IE 9、IE 8、IE 7上的运行就像一个魅力

我读了很多关于这个问题的东西,但对我没有任何帮助。那么,是否有任何解决方案。非常感谢您的帮助。

更新 1:我正在使用 jquery 1.7版

4

2 回答 2

2

也许这个提示会帮助你:

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

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

于 2014-03-05T19:26:26.427 回答
-1

您应该为此使用静态地图功能:

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

请参阅此处的文档。

    // 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 };
    });
于 2013-05-02T01:13:12.967 回答