Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> прикрепить к нескольким option аттрибут style, не работает в Opera 10 
:(
    Опции темы
fath_fast
Дата 9.10.2009, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 9.4.2007

Репутация: нет
Всего: нет



Доброго времени суток!
   Ребят, проблема вот в чём:
есть форма с несколькими элементами:
1) Календарь (textbox)
2) selectbox 
Затея такая: как только в календаре выбирается какая-нибудь дата, идёт ajax -запрос и в зависимости от результата, некоторые options в selectbox-e темнеют, т.е. приобретают аттрибут 
Код

   style="background: gray;"

 Так вот в фаерфоксе и IE 6 работает безотказно следующий код:
Код

   jQuery("select#time_since option[value='"+i+"']").attr("style", "background: gray;");  

 А в опере 10 никак не хочет. Причём:
Код

     alert(jQuery("select#time_since option[value='"+i+"']").val());  

  - отображает правильное значение элемента.
Что кто может подсказать?

PM MAIL   Вверх
EmilRegis
Дата 9.10.2009, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: 1
Всего: 4



а так не получится?
Код

$("select#time_since option[value='"+i+"']").css( "background", "gray"); 

PM MAIL   Вверх
fath_fast
Дата 9.10.2009, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 9.4.2007

Репутация: нет
Всего: нет



EmilRegis, тоже не хочет :(
 причём уже попробовал вот так :
Код

      document.getElementById("time_since").options[1].setAttribute('style', "background: black;");

 Везде работает кроме Oper-ы.
PM MAIL   Вверх
Itsys
Дата 10.10.2009, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 12
Всего: 34



Ну тогда только так:
Код

<style>
option.norm {
    background-color: #FFF
}
option.grey {
    background-color: grey
}
</style>
</head>

<body>

<form method="POST" action="#">
<select size="1" name="D1" id="sel">
    <option class="grey">Один</option>
    <option>Два</option>
    <option>Три</option>
    <option class="grey">Четыре</option>
    </select><input type="button" value="Отправить" name="B1" onclick="alert(document.getElementById('sel').options[1].className);document.getElementById('sel').options[1].className = 'grey';"></p>
</form>

PM MAIL WWW Skype   Вверх
IDVsbruck
Дата 10.10.2009, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



Цитата(fath_fast @  9.10.2009,  00:33 Найти цитируемый пост)
jQuery("select#time_since option[value='"+i+"']").attr("style", "background: gray;");

Что это за дикость???
Странно, что где-то это работает ... видать, простая случайность и излишняя гибкость языка.
Код

jQuery("#time_since option[value='" + i  + "']").css("background-color", "gray");

PM MAIL   Вверх
Itsys
Дата 12.10.2009, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 12
Всего: 34



IDVsbruck, так тоже не работает... я пробовал и через DOM менять - опера ни в какую не хочет менять отображение option, хотя при попытке повторной установке свойства - показывает, что это свойство уже установлено, и, даже конвертит "grey"  в "#808080".
PM MAIL WWW Skype   Вверх
fath_fast
Дата 13.10.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 9.4.2007

Репутация: нет
Всего: нет



IDVsbruck, ваш код в Опере тоже не работает, сколь он правильным бы Вам не казался :(
PM MAIL   Вверх
IDVsbruck
Дата 13.10.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



Оки, возможно. Есть несколько способов описать стили. Еще вот так:
Код

jQuery("#time_since option[value='" + i  + "']").css({backgroundColor:"#808080"});

Под оперу никогда не подстраивался и не тестирую, так как не рассматриваю как возможный клиентский брузер под проекты. А предложенные варианты, в принципе, универсальны, описаны документацией. Все остальное - проблемы браузера.
PM MAIL   Вверх
Itsys
Дата 13.10.2009, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 12
Всего: 34



fath_fast, чего, мой вариант со сменой класса не работает? Я его проверил - все ОК
PM MAIL WWW Skype   Вверх
IDVsbruck
Дата 14.10.2009, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



Это
Код

jQuery("select#time_since option[value='"+i+"']").attr("style", "background: gray;");

смена класса? smile smile smile

Идея, конечно, хороша. Лучше, чем менять стили, но реализация ужасна ... читать доку очень полезно:
Код

.new_class {background-color: #808080;}
$("select#time_since option[value='" + i + "']").attr("className", "new_class");

или
Код

$("select#time_since option[value='" + i + "']").addClass("new_class");

PM MAIL   Вверх
Itsys
Дата 16.10.2009, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 12
Всего: 34



я не  использую jQuery  smile 
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0837 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.