2012-06-11 2 views
0

У меня есть следующий фрагмент кода, вдохновленный twitter bootstrap. Он отлично работает на всем, кроме Blackberry Curve 8200.Изменение CSS на Blackberry

Это в основном открыть и закрыть навигацию.

События запуска, состояние подхватили правильно, но когда я настроить CSS ничего не происходит :(Я пробовал добавлять и удалять классы вместо этого, та же проблема.

Свернутый элемент делает отображаться неправильно, если я добавить атрибут стиля к нему вручную.

$('[data-toggle="collapse"]').bind('click', collapse); 

function collapse (e) { 
    var $this = $(this); 
    var target = $this.data('target'); 
    var state = $this.data('state'); 
    if (! state) state = 'closed'; 

    if (state === 'closed') { 
     $(target).css('height', 'auto'); 
     $this.data('state', 'open'); 
    } else { 
     $(target).css('height', '0'); 
     $this.data('state', 'closed'); 
    } 
    return false; 
} 

Это в основном походит на следующую строку

$(target).css('height', 'auto'); 

просто ничего не делает , Хотя целевая переменная правильная.

Мой HTML существу выглядит следующим образом

<style> 
    .nav { height: 0; } 
</style> 
<div data-toggle="collapse" data-target=".nav">...</div> 
<div class="nav">...</div> 

-update-

Я использовал зепто, просто попытался с JQuery ... та же проблема.

+0

Это я или цель - это всего лишь некоторые данные пользователя? (который не имеет css), вы должны изменить селектор на элемент (это). – Th0rndike

+0

Цель - это селектор содержимого, на которое нацеливается кнопка. –

+0

Вы можете показать разметку, пожалуйста? Я думаю, что вы выбираете элемент неправильно. – Th0rndike

ответ

1

Является ли это OS5 или OS6? Если OS5, у браузера есть всевозможные дефекты, поддерживающие повторный рендеринг DOM. height: auto является одним из них. Решение, которое я использовал, это показать их на загрузке страницы, измерить, а затем кешировать их первоначальную высоту с помощью атрибута data-*, а затем свернуть их все. Таким образом, когда пришло время показать их, вместо auto я могу дать точный размер пикселя.

+0

OS5, есть ли документация об ошибках рендеринга? Я собираюсь попробовать обычный toggle() вместо –

+0

Документация? Ахахахаха! Сожалею. Это был безумный смех, связанный со стрессом. Увы, нет, недостатки в OS5 многочисленны и спорадически задокументированы. Обычно это вопрос прослушивания форума RIM, ожидающего, пока RIM-разработчик окончательно подтвердит, что это дефект. Toggle может работать, хотя обратите внимание, что переключение 'display' между' block' и 'hidden' также может вызывать проблемы в определенных сценариях. В результате мы потеряли поддержку ОС5 из-за количества дефектов браузера. –

+0

хорошо, спасибо. Просто попытался сохранить высоты как атрибуты данных, но когда я попытаюсь установить все высоты на 0, после этого это не сработает ... :( –

Смежные вопросы