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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> динамическое изменение стиля, для организации интерфейса ползователя 
:(
    Опции темы
Vidocq
Дата 12.1.2005, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



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

Для этогот я предпринял следующее:

1) функция, обрабатывающая событие онклик
Код


var currItem=0;

function ItemSelect(idRec){
 if (currItem!=0)
  {
   document.all[currItem].className="trNormal";
  }
document.all[idRec].className="trSelected";
currItem=idRec;
}


2) ряд таблички поэтому выглядит где-то так
Код


<tr id=$result[id_task]  class='trNormal' onclick='ItemSelect(id)' ondblclick='ItemDblClick(id)'>

3) ну и стиль следующий
Код

tr.trSelected {background-color : red;color : blue;cursor : hand;}
tr.trNormal {background-color : white;color : black;cursor : hand;}



Прикол в том, что на даблклик реагирует так как надо, а на клик - облом.
А надо , напомню, чтобы кликнутый ряд менял цвет.

Заранее благодарен
PM MAIL ICQ   Вверх
Sardar
Дата 12.1.2005, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Зачем писать IE only.... ? Да ладно, надеюсь это в и-нет не полезет, а будет бегать по внутренней сети фирмы.

Oшибок не вижу... Поставь алерт в функцию, посмотри что приходит.
Код
function ItemSelect(idRec){
alert(idRec+", "+currItem);
........



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Vidocq
Дата 12.1.2005, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



О, классно! Теперь нашлась ошибка в скрипте:
Line 23, char 2, 'document.all[...]' is null or not an object

Я в шоке!!!
PM MAIL ICQ   Вверх
Vidocq
Дата 12.1.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



2 Sardar
почему-то idRec изменятся, а currItem - нет..... smile
PM MAIL ICQ   Вверх
Sardar
Дата 12.1.2005, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



А попробуй так:
HTML
<tr id=$result[id_task] class='trNormal' onclick='ItemSelect(this)' ondblclick='ItemDblClick(id)'>

Код
ItemSelect.currItem=null;
function ItemSelect(elem) {
  if(typeof(elem)=="string") elem=document.getElementById(elem);

  if(typeof(ItemSelect.currItem)=="object" && ItemSelect.currItem!=elem)  ItemSelect.currItem.className="trNormal";
  if(typeof(elem)=="object") {
     elem.className="trSelected";
     ItemSelect.currItem=elem;
  }
}



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Vidocq
Дата 12.1.2005, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



2 Sardar
Рулит!!!


PM MAIL ICQ   Вверх
Vidocq
Дата 12.1.2005, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



2 Sardar
фуууууу, вроде сделал...

пришлось, правда, схитрить:

Код

<tr id=$result[id_task] class='trNormal' onclick='ItemSelect(this, id)' ondblclick='ItemDblClick(id)'>


и

Код

function ItemSelect(elem, idRec) {
 if(typeof(elem)=="string") elem=document.getElementById(elem);

 if(typeof(ItemSelect.currItem)=="object" && ItemSelect.currItem!=elem)  ItemSelect.currItem.className="trNormal";
 if(typeof(elem)=="object") {
    elem.className="trSelected";
    ItemSelect.currItem=elem;
    currItem=idRec; // для того, чтоб в нужном месте передать его как индекс записи и потом дальше с ним извращаться - обновлять/удалять. Зато красиво! гыгы
 }
}


спасибо за помощь ;) ]()
PM MAIL ICQ   Вверх
Sardar
Дата 12.1.2005, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Не совсем, зачем хранить ID если можно весь элемент? smile Также можешь ID опросить у него самого:
Код
alert(elem.id);
//или
alert(elem.getAttribute("ID"));



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Vidocq
Дата 18.1.2005, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



2 Sardar
Добавлено @ 18:34
2 Sardar

эээээ, я малость не врубаюсь, зачем это?
Ну может так лучше, но знаешь - менять работающий код неохота.
Тем более, я в джаваскрипте плаваю конкретно smile


--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
Vidocq
Дата 19.1.2005, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



2 Sardar

Цитата

Зачем писать IE only.... ? Да ладно, надеюсь это в и-нет не полезет, а будет бегать по внутренней сети фирмы.

А почему только для IE? Это ж джаваскрипт, а он вроде встроен и в нетскейп...
Хотя насчёт внутренней сети ты прав...
PM MAIL ICQ   Вверх
Sardar
Дата 19.1.2005, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Потому что у браузеров только синтаксис одинаковый, модели документов разные. Были разные, пока W3C стандарты выпускать не начала. Например коллекция document.all это выдумка IE, как и document.layers в нетскейпе. Всё это мы не оффициально относим к DOM0, модель W3C DOM(1-3) описывают как представляется документ, как обращаться к отдельным элементам(тегам), модель событий и т.п.

Любой новый браузер должен поддерживать только W3C DOM, или его судьба быстро умереть. Если писать согласно рекомендациям W3C, то один и тот же скрипт будет работать везде, начиная с IE4 до Мозиллы1 и Оперы 7. Такие умершие бродилки как Опера 6, Нетскейп 4 и т.д. имеют свои представления о модели страницы, для них нужно писать отдельный код, либо(предпочтительно) забыть что эти браузеры когда-либо существовали.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Vidocq
Дата 19.1.2005, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



2 Sardar
В общем я так понял, что мне надо подучить матчасть smile
PM MAIL ICQ   Вверх
Sardar
Дата 19.1.2005, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Цитата(Vidocq @ 19.1.2005, 10:29)
общем я так понял, что мне надо подучить матчасть

Если хочешь в серьёз этим заниматься, то нужно изучть спецификации CSS, DOM1, DOM2 от W3C и выбросить все учебники выпущенные раньше 98 года smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Vidocq
Дата 19.1.2005, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



2 Sardar
Я думаю, мне придётся этим заниматься. И хотя основная деятельность - Рнр, джаваскрипт способен добавлять функциональности веб-приложению, разделяя его на клиентскую и серверную часть
PM MAIL ICQ   Вверх
Reptor
Дата 19.1.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

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



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


 




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


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

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