JQuery HTML () ошибка? - PullRequest
       5

JQuery HTML () ошибка?

0 голосов
/ 20 мая 2011

У меня ошибка в IE8, но работает в Firefox, Chrome и Safari. Вот мой HTML код

<!DOCTYPE html>
<html dir="ltr">
<head> 
        <style>
        header {display:block; background-color:#333; color:#fff;height:30px;}
        </style>
        <!--[if lt IE 9]>
        <script src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]--> 
</head>
<body>


<div id="bug">
        <header><h2>h2</h2></header>
</div>

<button type="button" onclick="$('#bug').html(' <header><h2>h2</h2></header>');">press</button>

<script type="text/javascript" language="javascript" src="jquery.tools.min.js"></script>
</body>
</html>

Вы можете увидеть код в действии здесь - http://evermight.com/jquerybug/index.html

В IE8, почему, когда я нажимаю кнопку "нажать", h2 с черным фоном превращается в белый фон вместо того, чтобы оставаться черным фоном? Когда я удаляю пустое пространство между html(' и <header> обработчика события нажатия кнопки, черный фон сохраняется, как и ожидалось.

Почему пустое пространство влияет на внешний вид тега заголовка CSS в IE8?

Ответы [ 2 ]

4 голосов
/ 20 мая 2011

Это не ошибка jQuery - это IE в сочетании с ошибкой HTML5shiv.Или вы можете просто назвать это ошибкой IE в целом.

Если вы попробуете свой код, заменив

<header> .... </header>

на

<div class='header'> .... </div>

, вы обнаружите, что он работаетправильно, даже с начальным пробелом.

Если вы читаете страницу проблем на сайте html5shiv , это известная ошибка (динамически создаваемые элементы HTML5 не обрабатывают).

Вы также можете прочитать это сообщение о потоке стека для получения дополнительной информации о том, что происходит и некоторые предложения по обходу.

1 голос
/ 20 мая 2011

Вам нужен innershiv .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...