2014-02-18 75 views
1

在Firefox和Chrome中可以正常工作。但为什么不在Safari?jQuery .find在Safari中不工作

$('.bxslider li .image').each(function() { 
    $(this).width($(this).find('img').width()); 
    }); 

Safari中的结果是style="width: 0px; "。 也试过$(document).ready,没有改变。

感谢您的帮助!

+0

图像可能未加载 –

+0

尝试此代码内$(窗口).load() –

回答

2

正如已经建议使用window.load()处理所有的图像加载后运行代码。

或者使用

jQuery(function ($) { 
    $('.bxslider li .image img').load(function() { 
     $(this).closest('.image').width(this.width) 
    }).filter(function() { 
     return this.complete; 
    }).trigger('load') 
}) 
+0

谢谢你的工作! –

1

尝试将代码放入$(window).load(function() { })以确保在更改宽度之前正确加载所有图像。

$(window).load(function() { 
    $('.bxslider li .image').each(function() { 
     $(this).width($(this).find('img').width()); 
    }); 
}); 
+0

我以前试过,它没有工作。无论如何,感谢您的帮助! –

1

,而不是发现你也可以使用 “>” - 运营商。 例如: -

$('.bxslider li .image').each(function() { 
    $(this).width($(this+'> img').width()); 
    }); 

您也可以使用该运营商在CSS: 例如为:

body > h1 

匹配身体标记内的所有H1标签。