下面的代码在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的问题。不过,我会更倾向于寻找更好的灯箱!