Javascript.RU

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

Изменение bgcolor строки таблицы
День добрый!
Среда - Oracle (отсюда некоторая специфика расстановки символов ' ). По задумке, скрипт должен делать следующее:

1) по умолчанию, цвет ECF0F4
2) при наведении, цвет должен меняться на E6E8EE
3) при уходе, цвет должен меняться назад на ECF0F4
4) при нажатии, строка должна "выделяться"
5) до второго нажатия (или перезагрузки фрейма) цвет должен оставаться 9999FF

На деле, происходит какая-то мистика: при одинаковом синтаксисе в трех событиях, они работают, похоже, по воле высших сил (не подчиняясь законам логики). Менять ' на " пробовал, # ставил, и вообще шаманил как мог. через полчаса плясок плюнул и решил спросить совета.

Текст скрипта:
bgcolor=ECF0F4

onClick=
"if (this.style.background != '''||'#9999FF'||''') {this.style.background='''||'#9999FF'||''';} else {this.style.background='''||'#ECF0F4'||''';}"

onMouseOver=
"if (this.style.background != '''||'#9999FF'||''') this.style.background='''||'#E6E8EE'||'''"

onMouseOut=
"if (this.style.background != '''||'#9999FF'||''') this.style.background='''||'#ECF0F4'||'''"
Ответить с цитированием
  #2 (permalink)  
Старый 26.09.2013, 18:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Lachrimae,
вариант plugin selectable
Ответить с цитированием
  #3 (permalink)  
Старый 26.09.2013, 18:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от Lachrimae
this.style.background != '''
почему не ''
Ответить с цитированием
  #4 (permalink)  
Старый 26.09.2013, 19:06
Аватар для Madzi
Аспирант
Отправить личное сообщение для Madzi Посмотреть профиль Найти все сообщения от Madzi
 
Регистрация: 15.06.2013
Сообщений: 38

Всё-таки напрямую кодить цвет - неправильно. Лучше добавляйте/удаляйте нужные классы, а в CSS опишите расцветку комбинаций.
Ответить с цитированием
  #5 (permalink)  
Старый 26.09.2013, 21:39
Новичок на форуме
Отправить личное сообщение для Lachrimae Посмотреть профиль Найти все сообщения от Lachrimae
 
Регистрация: 26.09.2013
Сообщений: 3

Сообщение от Madzi Посмотреть сообщение
Всё-таки напрямую кодить цвет - неправильно. Лучше добавляйте/удаляйте нужные классы, а в CSS опишите расцветку комбинаций.
так в любом случае придем к той же самой ситуации, когда блоки IF творят беспредел, боюсь.
Сообщение от рони Посмотреть сообщение
Lachrimae,
вариант plugin selectable
На странице пых-пыха и jQuery нет и в общем-то не хотелось бы, поскольку я его в них разбираюсь еще хуже, чем в яваскрипте. Но вообще посмотрю, может чего-нибудь ценное для себя почерпну, спасибо.
Сообщение от рони Посмотреть сообщение
почему не ''
Потому что мне надо менять цвет по этому событию только если он уже не изменен на #9999FF.

Последний раз редактировалось Lachrimae, 26.09.2013 в 21:44.
Ответить с цитированием
  #6 (permalink)  
Старый 03.10.2013, 00:16
Аватар для Madzi
Аспирант
Отправить личное сообщение для Madzi Посмотреть профиль Найти все сообщения от Madzi
 
Регистрация: 15.06.2013
Сообщений: 38

Сообщение от Lachrimae Посмотреть сообщение
так в любом случае придем к той же самой ситуации, когда блоки IF творят беспредел, боюсь.
Если делать через CSS, то вам не нужны будут IF:
схематично:
Код:
onClick = addClass('active'), removeClass('over'), removeClass('default')
onMouseOver = addClass('over'), removeClass('active'), removeClass('default')
onMouseOut = addClass('default'), removeClass('active'), removeClass('over')
Ответить с цитированием
  #7 (permalink)  
Старый 03.10.2013, 00:46
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от Lachrimae
Потому что мне надо менять цвет по этому событию только если он уже не изменен на #9999FF.
Вы можете объяснить, что означает этот набор кавычек и палочек?
if (this.style.background != '''||'#9999FF'||''')

по-моему должно быть так
if (this.style.background != '#9999FF')

Только учитывайте, что .style.background проверяет только инлайновый стиль, в CSS не лезет
Ответить с цитированием
  #8 (permalink)  
Старый 03.10.2013, 08:58
Аватар для Madzi
Аспирант
Отправить личное сообщение для Madzi Посмотреть профиль Найти все сообщения от Madzi
 
Регистрация: 15.06.2013
Сообщений: 38

палочки - конкатенация строк, кавычки - для того чтобы кавычки отобразились, это же SQL.
Ответить с цитированием
  #9 (permalink)  
Старый 03.10.2013, 10:18
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Madzi, спасибо! Lachrimae, прошу прощения, был полусонный, не дочитал.
Ответить с цитированием
  #10 (permalink)  
Старый 03.10.2013, 11:05
Новичок на форуме
Отправить личное сообщение для Lachrimae Посмотреть профиль Найти все сообщения от Lachrimae
 
Регистрация: 26.09.2013
Сообщений: 3

Сообщение от BETEPAH Посмотреть сообщение
Вы можете объяснить, что означает этот набор кавычек и палочек?
if (this.style.background != '''||'#9999FF'||''')
PL/SQL, он такой! Синтаксис слегка специфичен.

Сообщение от Madzi Посмотреть сообщение
Если делать через CSS, то вам не нужны будут IF:
схематично:
Код:
onClick = addClass('active'), removeClass('over'), removeClass('default')
onMouseOver = addClass('over'), removeClass('active'), removeClass('default')
onMouseOut = addClass('default'), removeClass('active'), removeClass('over')
Все. Спасибо за, так сказать, косвенную помощь. Эта фича у меня не сработала, пока гуглил что это такое. нашел себе очень удобное и лаконичное решение:
onClick = "this.className = (this.className == ''active'' ? ''default'' : ''active'')"
onMouseOver = "this.className = (this.className == ''active'' ? ''active'' : ''over'')"
onMouseOut = "this.className = (this.className == ''active'' ? ''active'' : ''default'')"

Последний раз редактировалось Lachrimae, 03.10.2013 в 11:41.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое изменение background-a в ячейках таблицы Gh0stik Events/DOM/Window 15 02.08.2012 19:40
Изменение окраски строк таблицы, исходя из данных? Space-06 Events/DOM/Window 4 14.02.2012 21:32
Динамическое изменение таблицы Mar4elo Элементы интерфейса 2 14.01.2011 22:39
Запрос на изменение кодировки таблицы и БД Golovastik Серверные языки и технологии 14 12.11.2010 23:33
Динамическое изменение границ между столбцами таблицы srgg Элементы интерфейса 3 10.08.2008 14:40