JQuery: ошибка стилизации IE / ошибка при выборе атрибута attr () - PullRequest
0 голосов
/ 15 июня 2009

У меня проблема с IE, которая хороша в FF, Chrome и т. Д ...

У меня есть, например, макет с двумя столбцами, который для отладки опустошил левую. Правая часть имеет длинный список результатов в таблице с возможностью сортировки над ней.

В этом разделе сортируемых опций есть поле выбора, которое имеет параметры, генерируемые динамически. При обновлении через $ (this) .html (...) содержимое может обновляться нормально, но когда я изменяю статус отключенного с помощью attr (), это нарушает стилизацию результатов под ним ... Это сокращает высоту страницы. от показа результатов. Если я помещу высоту в левый столбец с каким-либо изображением или каким-либо содержимым, он падает по высоте до конца содержимого в этом левом столбце.

Как будто он теряет смысл того, что находится в правом столбце, если кто-то по какой-то причине перерисовывает его, чтобы не показывать то, что на самом деле находится в этом столбце.

У кого-нибудь есть решение, как я могу это исправить в jQuery или даже принудительно применить какой-то обходной путь в CSS / HTML для IE? Действительно раздражает, и я полностью вне идей: (* ​​1009 *

Просто обновляю код:

HTML

<div id="ctn"><div id="ctn_wrp"><div id="ctn_cnt">
<div class="col_l180wrp">

<div class="lay_l">
<div class="col_l180hdr"></div>

</div>

<div class="lay_mr">

<div style="height:66px;margin:0px 0px 10px 0px;background:url(/images/search/bg-pp-search.gif) no-repeat top left;">
<div style="float:left;width:504px;height:66px;font-size:11px;">

<table cellpadding="4" cellspacing="4">
<tr style="font-size:11px;color:#FFF;font-weight:bold;">
<td>Manufacturer</td>
<td>Model</td>
<td>Network</td>
<td>Phone cost</td>

</tr>
<tr>
<td>
<select id="manufacturer" name="manufacturer">
  <option value="">Any</option>
  <option value="18">Apple</option>
  <option value="8">Blackberry</option>
  <option value="14">HTC</option>
  <option value="5">LG</option>
  <option value="2">Motorola</option>
  <option value="1">Nokia</option>
  <option value="15">O2</option>
  <option value="3" selected="selected">Samsung</option>
  <option value="24">Sonim</option>
  <option value="4">Sony Ericsson</option>
  <option value="19">Three</option>
</select>
</td>

<td colspan="3">
  <select id="models" name="models" disabled="disabled">
    <option value="">Any</option>
  </select>
</td>
</tr> 
</table>

</div>
<div style="float:left;width:246px;height:66px;">
<input type="image" src="/images/search/bt-compare.gif" id="submit_button" name="submit" value="Submit" alt="Submit" title="Submit" style="margin:8px 0px 0px 12px;" /> 
</div>
<div class="sp"></div>
</div>

</form>
<div class="sp"></div>

<div class="split_l560">

<div id="results">


</div>

</div>

<div class="split_r180">
</div>

</div>
<div class="sp"></div>

</div>
<div class="col_l180ftr"></div>
<script type="text/javascript">
var premanufacturer=3;
var premodel=522;
</script>

</div></div></div>

Таблица результатов обычно включается в результаты div #, но сейчас я ее убрал.

Макет представляет собой главный левый столбец (subnav), который будет «layl», тогда как «lay_mr» будет основным справа. Он имеет поисковый фильтр вверху, а затем разбивается на 2 столбца с результатами слева в одном из этих двух. Если содержимое помещено в «layl» или «split_r180», то таблица результатов показывает высоту содержимого в этих двух столбцах. В настоящее время я сделал их пустыми, хотя.

Это прерывается, когда триггер / событие / запуск происходит на выбранных # моделях. Это обрабатывается jQuery.

Он выполняет обратный вызов, а затем я обновляю опции, используя .html, и как только он достигает изменения в атрибуте, он нарушает высоту.

$("select#models").html(options);
$("select#models").attr("disabled","");

Я также попытался удалить Attr () без радости. Действительно в тупик! : - / Как я говорю абсолютно нормально с FF и Chrome! Типичный IE а? : *)

Спасибо за любую помощь, ребята, это очень ценится.

1 Ответ

1 голос
/ 16 июня 2009

Мне удалось исправить ошибку путем своего рода удвоения работы, так сказать. Я сделал это hide () и show () снова #results, и это заставляет IE перерисовать его и снова понять его высоту. Раздражает, но это решает проблему: - /

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