[英]Anyone tell me why this Jquery doesn't work in IE?
下面的代码在FF chrome等中可以正常工作,但在IE中则不能,有人知道为什么吗?
基本上所有的工作都可以接受image属性的替换
$("#container #main_image img#largeId").attr({ src: largePath });
甚至该功能的其余部分(即交换类)都可以工作,而不是图像替换。 完整的示例可以在此处看到, 示例单击图像,然后尝试在模式窗口右侧的缩略图之间切换。
我要达到的效果与本网站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的问题。 不过,我会更倾向于寻找更好的灯箱!
您是否曾使用Fiddler来查看是否正在请求图像?
这总是对我有用:$(“#foo”)。attr(“ src”,url);
您也可以代替。
$('#foo')。before('<img src =“” ... />')。remove();
<a>标记的title属性中列出的路径不正确(请检查大小写)。 特别,
<a class="group" href="#hidden" title="images/2_large.jpg">
应该
<a class="group" href="#hidden" title="Images/2_large.jpg">
Firefox稍宽容一些,但IE拒绝了这种恶作剧。
除了BipedalShark的答案外,我还注意到了一些我想起的事情:
因此,我知道(以及可能的解决方案)这可能是造成问题的部分原因吗? 或者,是否需要在页面底部加载fancybox?
基本上,已通过将目标元素从“ ID”更改为“类”来解决此问题。
之所以需要这样做,是因为Fancybox在调用模式窗口时会复制ID!
非常感谢大家的帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.