обработка событий onMouseOver и onMouseOut для 10000 ячеек

Программирование на Active Server Pages и VBScript.
Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

обработка событий onMouseOver и onMouseOut для 10000 ячеек

Сообщение Cyrax » 01.07.2003 (Вт) 16:47

вот такой вот вопрос мне недавно в ICQ задали...

есть таблица с 10000 ячеек. при наведении и уходе курсора с этих ячеек нужно менять их цвет.
возможноли сделать обработку вышеупомятутых событи для 10000 ячеек таблицы в одной процедуре? при этом желательно обойтись минимальным кодом...
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 01.07.2003 (Вт) 16:58

Код: Выделить всё
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>

<style type="text/css">
.active {background-color: red; color: white;}
</style>

</HEAD>

<BODY BGCOLOR="#FFFFFF">

<table border="1"><tr>
   <td onmouseover="changeColor(this);" onmouseout="changeColor(this);">1</td>
</tr><tr>
   <td onmouseover="changeColor(this);" onmouseout="changeColor(this);">2</td>
</tr></table>

<script language="javascript" type="text/javascript">
<!--
function changeColor(cell) {
   cell.className = (cell.className=="" ? "active" : "");
}
//-->
</script>

</BODY>
</HTML>

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 01.07.2003 (Вт) 17:04

skiperski, а с помощью VBScript?
и если можно, поясни код, а...
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 01.07.2003 (Вт) 17:10

Код: Выделить всё
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>

<style type="text/css">
.active {background-color: red; color: white;}
</style>

</HEAD>

<BODY BGCOLOR="#FFFFFF">

<table border="1"><tr>
   <td onmouseover="changeColor(this)" onmouseout="changeColor(this)">1</td>
</tr><tr>
   <td onmouseover="changeColor(this)" onmouseout="changeColor(this)">2</td>
</tr></table>

<script language="vbscript" type="text/vbscript">
<!--
Function changeColor(cell)
   If (cell.className = "") Then cell.className = "active" Else cell.className = ""
End Function
//-->
</script>

</BODY>
</HTML>

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 01.07.2003 (Вт) 17:19

skiperski, спасибо
в vb-коде вроде что-то более или менее понятно
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 01.07.2003 (Вт) 17:37

Вот совсем универсальный способ для всех таблиц на странице. Но только на JavaScript. На VBScript я не знаю как связать событие с функцией обработки.
Код: Выделить всё
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>

<style type="text/css">
.active {background-color: red; color: white;}
</style>

</HEAD>

<BODY BGCOLOR="#FFFFFF">

<table border="1"><tr>
   <td>1</td>
</tr><tr>
   <td>2</td>
</tr></table>

<script language="javascript" type="text/javascript">
<!--

function changeColor() {
   var el=event.srcElement;
   if(el.tagName=="TD") el.className = (el.className=="" ? "active" : "");
}

document.onmouseover=changeColor;
document.onmouseout=changeColor;

//-->
</script>

</BODY>
</HTML>

Dantes
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 153
Зарегистрирован: 19.10.2002 (Сб) 14:46
Откуда: Russia

Сообщение Dantes » 04.07.2003 (Пт) 13:40

Так, к сведению...
на VBScript нужно просто задать код соответствующего Sub'а. Имена Sub'ов образуются как и в VB - например, события клика на кнопку Command1 описывается в Sub Command1_Click()

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 04.07.2003 (Пт) 13:44

А как описываются события для всего документа? document_onclick() ничего не делает.

ЗЫ: Пожалуйста, не поднимай старые темы. Уже больше месяца прошло как тема умерла (это не об этом топике) и человек уже, скорее всего, давно проблему решил.

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 04.07.2003 (Пт) 13:45

Dantes писал(а):Так, к сведению...
на VBScript нужно просто задать код соответствующего Sub'а. Имена Sub'ов образуются как и в VB - например, события клика на кнопку Command1 описывается в Sub Command1_Click()

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

Welcome to IRC

Dantes
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 153
Зарегистрирован: 19.10.2002 (Сб) 14:46
Откуда: Russia

Сообщение Dantes » 04.07.2003 (Пт) 14:19

skiperski писал(а):А как описываются события для всего документа? document_onclick() ничего не делает.



Код: Выделить всё
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<table name="myTable" border="1">
   <tr>
      <td>&</td>
   </tr>
   <tr>
      <td>&</td>
   </tr>
</table>
<script language="vbscript">
   Sub document_onclick
      alert("YO")
   End Sub
</script>

</BODY>
</HTML>


skiperski писал(а):ЗЫ: Пожалуйста, не поднимай старые темы. Уже больше месяца прошло как тема умерла (это не об этом топике) и человек уже, скорее всего, давно проблему решил.

сорри, давненько здесь не бывал, на дату не обратил внимания....

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 04.07.2003 (Пт) 14:32

Видимо, я тогда чего-то не того понаделал. Тщательнее надо быть.
Вот код для VBScript с глобальным хуком. Обрамление вырезано.
Код: Выделить всё
<script language="vbscript" type="text/vbscript">

Function changeColor()
   Dim el
   Set el = window.event.srcElement
   If (el.tagName = "TD") Then
      If (el.className = "") Then el.className = "active" Else el.className = ""
   End If
End Function

Sub document_onmouseover()
   Call changeColor()
End Sub

Sub document_onmouseout()
   Call changeColor()
End Sub

</script>

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 04.07.2003 (Пт) 14:50

ур-р-ря-я-я-я-я!!!Изображение
спасибочки огромное...
жму всем руку Изображение
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC


Вернуться в ASP и VBScript

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList  
cron