下面的代码在FF chrome等中可以正常工作,但在IE中则不能,有人知道为什么吗?

基本上所有的工作都可以接受image属性的替换

$("#container #main_image img#largeId").attr({ src: largePath });


甚至该功能的其余部分(即交换类)都可以工作,而不仅仅是图像替换。
可以在此处查看完整的示例,example单击图像,然后尝试在模式窗口右侧的缩略图之间切换。

我要达到的效果与该网站webdesignerwall的效果相似,jQuery几乎完全相同-尽管它可以与IE一起使用!!!

jQuery(document).ready(function($) {

  $("a.group").fancybox({
    'frameWidth':966,
    'frameHeight': 547,
    'hideOnContentClick': false,
    'overlayOpacity': 0.85,
    'callbackOnShow': function() {
      $("#container ul#thumbnails li a").click(function(){
        var largePath = $(this).attr("title");
        $("#container #main_image img#largeId").fadeOut().hide();
        $("#container #main_image img#largeId").attr({ src: largePath });
        $("#container #main_image img#largeId").fadeIn("slow");
        $('.active').removeClass('active');
        $(this).addClass("active");return false;
      });
    }
  });

});

最佳答案

好的,我已经解决了。这很痛苦,我断定该插件是完全错误的:)

该插件复制隐藏的内容并将其插入“框”中。这意味着您到处都是重复的ID,这当然是无效的,并且有趣的事情开始发生。选择$('#largeId')时,它实际上引用的是原始隐藏的照片。如果您从#hidden中删除display:none样式,则可以看到此内容。

结论是使用一个实际上附加内容而不是重复内容的灯箱。我不喜欢作者的所作所为。

您可以修改插件代码以使用append而不是使用(插件的第112行)
像这样

 var newHtml = $('<div id="fancy_div" />').append(target);
 _set_content(newHtml.html(), opts.frameWidth, opts.frameHeight);


然后,您必须处理在关闭灯箱时放回html的问题。不过,我会更倾向于寻找更好的灯箱!

10-07 19:07
查看更多