Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.07.2013, 17:43
Новичок на форуме
Отправить личное сообщение для fError Посмотреть профиль Найти все сообщения от fError
 
Регистрация: 19.07.2013
Сообщений: 9

Не работает display:=""
Список не хочет показываться обратно.
li ul.expandable { display: none }


var ul;
            if(objA.nextSibling.nextSibling.tagName == "UL"){//таким способом решил пропустить пробельные ноды
                ul = objA.nextSibling.nextSibling ;
                ul.style.display = '';
               
            }


Прикол в чём: если указать ul.style.display = "block\inline и т.д.", то всё работает. А я просто хочу отменить none.
Ответить с цитированием
  #2 (permalink)  
Старый 19.07.2013, 18:02
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

поменяйте имя класса у элемента и тем самым оно отмениться
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 19.07.2013, 18:06
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Так ты так стиль, прописанный через css не отменишь. Отменить его можно примерно так:

var rules = document.styleSheets[0].cssRules;
for (var i = 0; i < rules.length; i++) {
    if (rules[i].selectorText == 'li ul.expandable') {
        rules[i].style.display = '';
    }
}


А style объекта - это то, что находится в его атрибуте style. У тебя же этот атрибут пуст? Ну вот и style.display у тебя тоже пуст. Можешь перед присваиванием проверить.
Ответить с цитированием
  #4 (permalink)  
Старый 19.07.2013, 18:19
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от danik.js
Отменить его можно примерно так:
не для всех браузеров этот код корректен
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 19.07.2013, 18:22
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от devote
не для всех браузеров этот код корректен
Я не призываю его использовать. Я просто пояснил. А решение - конечно же переопределять style.display либо менять css-класс.
Ответить с цитированием
  #6 (permalink)  
Старый 19.07.2013, 18:33
Новичок на форуме
Отправить личное сообщение для fError Посмотреть профиль Найти все сообщения от fError
 
Регистрация: 19.07.2013
Сообщений: 9

Спасибо. Понятно. Не знал что нельзя отменять прописанное в CSS.
Что ж вы хотите, 2 дня учу JS =)
Переопределять style.display - имеется ввиду что то вроде: ??
window.onload = function(){
    var elements = document.getElementsByClass("expandable"); //понятно что не байкласс, а там bytagname - переборка элтов, иф атрибут class == expandable и т.д.
    for(var i = 0; i < elements.length ; i++){
        elements[i].style.display = "none";
    }
}


Хотя наверное есть более простой вариант

Последний раз редактировалось fError, 19.07.2013 в 18:37.
Ответить с цитированием
  #7 (permalink)  
Старый 19.07.2013, 18:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от fError
Хотя наверное есть более простой вариант
Куда еще проще то?
Сообщение от fError
//понятно что не байкласс, а там bytagname - переборка элтов, иф атрибут class == expandable и т.д.
Так юзай document.querySelectoAll('ul.expandable') - это работает в IE8, поддержка которого пока еще актуальна. В IE7 уже не будет работать, но им сейчас уже никто не пользуется - все на него уже забили.
Ответить с цитированием
  #8 (permalink)  
Старый 19.07.2013, 18:57
Новичок на форуме
Отправить личное сообщение для fError Посмотреть профиль Найти все сообщения от fError
 
Регистрация: 19.07.2013
Сообщений: 9

Ну что то в этом роде я и имел ввиду. Ещё раз спасибо.
Насчёт забили - ну смотря кто. Знакомый в госконторе работает - уже сделали проект, заказчик сказал переделывать под 6-й) Беларусь такая беларусь)

Последний раз редактировалось fError, 19.07.2013 в 18:59.
Ответить с цитированием
  #9 (permalink)  
Старый 19.07.2013, 19:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Не спорю, в некоторых случаях нужна более полная кроссбраузерность. Но я говорю про основную массу разработчиков.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11