Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
AlexiS_02
Зарегистрирован: 25.03.2003 Сообщения: 8
|
Добавлено: Вт Мар 25 2003 10:34 Заголовок сообщения: Текст в ячейке меняется при наведении мыши на линк находящийся в другой ячейке |
|
|
Ситуация: В левой колонке таблицы есть линки.В правой колонке текст. Наводим мышь на один из линков - в правой колонке текст меняется на текст соответствующий линку. Убираем мышь с линка - возвращается исходный текст. Как это сделать? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Роман
Зарегистрирован: 23.05.2003 Сообщения: 72
|
Добавлено: Вт Мар 25 2003 12:08 Заголовок сообщения: Re: Текст в ячейке меняется при наведении мыши на линк находящийся в другой ячейке |
|
|
Линки пишем так: < a href="url" onMouseOver = "changeInCell ('текст', cellID)" onMouseOut = "changeInCell ('текст', cellID)" > Вот тебе такая функция на JavaScript: function changeInCell (text, cellID) { var action = eval ("document.all." + cellID + ".innerHTML = " + text) } Это наиболее простой вариант. Однако, он самый некрасивый, поскольку каждый раз надо прописывать 2 параметра. Другой вариант создать массив объектов с индексацией по именам (имя каждого из них - ID ячейки таблицы). Каждый объект имеет 2 свойства: changed = "text" normal = "text" Этот способ делает редактирование содержимого ячеек более гибким, поскольку теперь все тексты в ячейках записаны в одном месте. Чтобы еще более упростить работу можно написать функцию onLoad, которая будет заполнять уже созданные ячейки нужным содержимым из свойства normal элементов массива. Единственный недостаток состоит в том, что для того, чтобы обращаться к элементам массива, индексы которого представляют собой текстовую информацию, состоит в том, что необходимо иметь дополнительный массив с числовой индексацией, чтобы обращаться к элементам нужного массива в цикле. Однако, из этого положения тоже можно выйти, если использовать нумерацию для ID, но помните, что номеру должен прешествовать текстовый символ (хотя бы 1). Что ж так мы и поступим. Применяя метод substring, начиная с первого символа и заканчивая последним, мы после применения parseInt, получим корректное число. Ну ладно, чтобы не толочь воду в ступе приведу второй вариант кода: Линк: < a id="l12" onMouseOver = "change (this.id)" onMouseOut = "reverse (this.id)" %gt; Скриптовая часть: var texts = new Array () texts[0] = {changed: "text", normal: "text"} ..... texts[n] = ..... function change (id) { var numindex = parseInt (id.substring (1, id.length)) var action = eval ("document.all.c" + numindex + ".innerHTML = " + texts[numindex].change) } для функции reverse () все то же самое, только вместо свойства change используй normal Функция onLoad: function fillIt () { for (var i=0; i |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
mpakmopucm
Зарегистрирован: 24.12.2002 Сообщения: 58 Откуда: Москва
|
Добавлено: Вт Мар 25 2003 12:29 Заголовок сообщения: Re: Текст в ячейке меняется при наведении мыши на линк находящийся в другой ячейке |
|
|
ДЫк, рекомендую посмотреть список и описание событий. А в тэг <A> вставляем атрибут ONMOUSEOVER="fChangeTextForvard();" ONMOUSEOUT="fChangeTextBack();", где fChangeTextForvard() и fChangeTextBack() - функции, написанные на JScript или VBScript и предназначены для выполнения во время НАСТУПЛЕНИЯ СОБЫТИЙ :курсор наводится на ссылку и, соответственно, сползает с нее. Далее. Ячейка, в которую надо заменить текст должна быть поименованной типа <TD ID="cellToChange" NAME="cellToChange">. рекомендую использовать одновременно и ID, и NAME, причем с ИДЕНТИЧНЫМИ (воизбежание ошибки) значениями: IE для адресации использует ID, а другие - обычно NAME. А теперь - все просто: в своей функции fChangeTextForvard делаем примерно так (JScript): sOldText=document.all.cellToChange.innerText; document.all.cellToChange.innerText="Это текст при наведении на ссылку"; в fChangeTextBack - document.all.cellToChange.innerText=sOldText;
sOldText - глобальная переменная - объявляется раньше функций. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
AlexiS_02
Зарегистрирован: 25.03.2003 Сообщения: 8
|
Добавлено: Вт Мар 25 2003 13:56 Заголовок сообщения: Re: Текст в ячейке меняется при наведении мыши на линк находящийся в другой ячейке |
|
|
Я извиняюсь... В скриптах я начинающий, поэтому может не все и не так понимаю. Но мне показалась что в способе описанном Mpakmopucm предпологается лишь два варианта текста. А у меня их 6. Т.е. один исходный который отображается всегда и 5 замещающих его. А 5 потому что ссылок то 5 (в левом столбице пять ячеек со сылками). Поэтому мне кажется что вариант (первый из вариантов)присланный Романом кажется мне более подходящим. Извиняюсь, я в основном картинки ресую, а не програмиррую, а тута жизня приперла джавой заняться и я в самом начале ее освоения. Поэтому, если можно, поподробнее. Хотя не настаиваю. И так классно. Из одного примера взял функшин из дугого узнал как ID ячейкам назначать. Вобщем всем ответившим очень признателен |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
AlexiS_02
Зарегистрирован: 25.03.2003 Сообщения: 8
|
Добавлено: Вт Мар 25 2003 16:15 Заголовок сообщения: Re: Текст в ячейке меняется при наведении мыши на линк находящийся в другой ячейке |
|
|
УРА!!! Сам разобрался. Использовал всетаки вариант Mpakmopucm, но чтоб работало для нескольких текстов ввел в функцию fChangeTextForvard аргумент и все ништяк. Всем успеха. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
ap Гость
|
Добавлено: Чт Мар 27 2003 20:46 Заголовок сообщения: Re: Текст в ячейке меняется при наведении мыши на линк находящийся в другой ячейке |
|
|
Напиши, плз, как ты сделал, у меня чего то не получается. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
AlexiS_02
Зарегистрирован: 25.03.2003 Сообщения: 8
|
Добавлено: Пт Мар 28 2003 08:25 Заголовок сообщения: Re: Текст в ячейке меняется при наведении мыши на линк находящийся в другой ячейке |
|
|
Вот тебе код (пояснения некогда было писать, извини, думаю разберешся, пиши если что)
Untitled Document
function fChangeTextForvard(aa) { sOldText=document.all.cellToChange.innerText; docume nt.all.cellToChange.innerText=aa; } function fChangeTextBack() { document.all.cellToChange.innerText=sOldText; }
Гугле Голый Вася Рамблерище Апортище
|
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
AlexiS_02
Зарегистрирован: 25.03.2003 Сообщения: 8
|
Добавлено: Пт Мар 28 2003 08:33 Заголовок сообщения: Re: Текст в ячейке меняется при наведении мыши на линк находящийся в другой ячейке |
|
|
Ой! Пардон. Фигня какая-то вышла Пример выслал на мыло начинающееся с test1233
Удачи. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
AlexiS_02
Зарегистрирован: 25.03.2003 Сообщения: 8
|
Добавлено: Пт Мар 28 2003 10:12 Заголовок сообщения: Re: Текст в ячейке меняется при наведении мыши на линк находящийся в другой ячейке |
|
|
а как при этом обеспечить исходный формат текста, а то он заменяется на дефолтный? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|