Итак, мне нужно знать ширину элемента с javascript, проблема заключается в том, что функция срабатывает слишком рано, а ширина изменяется, когда css используется для изменения. Как я понял, функция $(document).ready() была запущена, когда документ завершен, но похоже, что это не работает.
В любом случае, я уверен, что с кодом моя проблема будет понята (это упрощенный пример):
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<link href='http://fonts.googleapis.com/css?family=Parisienne' rel='stylesheet' type='text/css'>
<style type="text/css">
#target {
font-family: 'Parisienne', cursive;
float: left;
}
</style>
</head>
<body>
<div id="target">Element</div>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(){
console.debug($('#target').outerWidth());
alert('hold on');
console.debug($('#target').outerWidth());
});
</script>
Я хочу знать ширину div #target, проблема в том, что код, выполняемый перед предупреждением, дает другой результат, чем тот, который после, по-видимому, потому, что шрифт не полностью загружен и он измеряет div с помощью шрифт по умолчанию.
Он работает так, как я ожидаю, в Google Chrome, но он не работает в IE и Firefox.