我有一个图像,我希望它的父元素具有与图像相同的宽度。我在加载事件上执行此操作,因此设置了图像的宽度。图像存在于DOM中。这是jsfiddle;
这是我脚本中的实际加载事件处理程序;
matchParentOnLoad: function(e){
var imgWidth = this.naturalWidth || this.width;
var imgParent = ($(this).parent().length>0) ? $(this).parent() : $(this.parentNode);
imgParent.width(imgWidth);
}
在IE8标准模式下,imgParent的长度始终等于零。我该如何解决这个问题?
答案 0 :(得分:0)
这通常是因为在加载图像之前尝试使用图像,因此其尺寸未知。尝试推迟直到加载:
$(window).load(function(){
var imgw = $("#myimg");
var prt = $("#parentel");
prt.width(imgw.width());
});
答案 1 :(得分:0)
你应该测试一下:
$(this).parent().length != -1 // Instead of $(this).parent().length>0