Хорошо,
Я создал панель управления в стиле твиттера для применения фильтров и сортировки к списку,
код для него такой:
<div id="drawer">
<div id="orderDrawer" class="subDrawer" >
<div class="closeDrawer clearfix ui-icon ui-icon-closethick">close</div>
<h4>sorteer</h4>
<div id="orderPanel">
<!--some content-->
</div>
</div>
<div id="filterDrawer" class="subDrawer" >
<div class="closeDrawer clearfix ui-icon ui-icon-closethick">close</div>
<h4>Filters</h4>
<div id="filterPanel">
<!-- some content -->
</div>
<div id="filterButtonBar" class="drawerButtons">
<button id='applyFilter' name='applyFilter'>Apply</button>
</div>
</div>
</div>
Это работает вместе со следующим кодом JS:
$("#orderPanelButton").click( function(){
if( $(".subDrawer[id!=orderDrawer]").is(":visible") ) {
$("#drawer").slideUp( function() {
$(".subDrawer").hide();
$("#orderDrawer").show();
$("#drawer").slideDown();
});
} else {
$(".subDrawer").hide();
$("#orderDrawer").show();
$("#drawer").slideToggle();
}
});
$("#filterPanelButton").click( function(){
if( $(".subDrawer[id!=filterDrawer]").is(":visible") ) {
$("#drawer").slideUp( function() {
$(".subDrawer").hide();
$("#filterDrawer").show();
$("#drawer").slideDown();
});
} else {
$(".subDrawer").hide();
$("#filterDrawer").show();
$("#drawer").slideToggle();
}
});
и, наконец, я использую кнопку jQuery UI для формирования кнопки:
$("#applyFilter").click(function(){
$("#filterForm").submit();
});
$("[name='applyFilter']").button({icons: {
primary:'ui-icon-arrowreturnthick-1-e'}});
Это прекрасно работает во всех протестированных браузерах (FF, chrome, IE8), но не в IE7. Там, когда я меняю содержимое #drawer с 'filter' на 'order' с необходимыми скрытиями и slideToggles, появляется пустой призрак кнопки applyFilter. Призрак, который исчезнет, когда вы наведете на него курсор.
Кто-нибудь здесь понял, почему это происходит и как я могу избавиться от этой надоедливой небольшой ошибки в моем коде для IE7?
[обновление 22 июля / 10]
Я нашел временное решение, но надеюсь найти что-то более опрятное.
Я добавил следующий JS, основанный на обнаружении MSIE 7.0 с помощью PHP:
$(".subDrawer[id!=' . $drawer . 'Drawer]").find("button").each(function(){
$(this).css("display","none");
});
$(".subDrawer[id=' . $drawer . 'Drawer]").find("button").each(function(){
$(this).css("display","");
});
Где $ box = первая часть идентификатора subDrawer (фильтр / заказ).