Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
msfaq
Зарегистрирован: 11.03.2004 Сообщения: 19
|
Добавлено: Пн Авг 23 2004 20:39 Заголовок сообщения: click по table |
|
|
На форме есть table. Происходит click по table и вызывается функцмя Java Script. Вопрос - каким образом можно узнать по какой ячейке (даже столбцу 1...n ) был произведен click.
Заранее спасибо. |
|
Вернуться к началу |
|
|
Almaz
Зарегистрирован: 13.08.2004 Сообщения: 45
|
Добавлено: Вт Авг 24 2004 02:44 Заголовок сообщения: |
|
|
Кроме как запихать onClick в каждый <td> в голову пока ничего не приходит. Если генерируешь страницу скриптом, то в принципе проблемы дописать не возникнет.
Получится что-то типа так:
Код: | <html>
<body>
<script>
function cl(a,b)
{
alert(a+'-'+b);
}
</script>
<table width=40% border=1">
<tr><td onClick="javascript:cl(1,1);">1</td><td onClick="javascript:cl(1,2);">2</td></tr>
<tr><td onClick="javascript:cl(2,1);">3</td><td onClick="javascript:cl(2,2);">4</td></tr>
</table>
</body>
</html> |
|
|
Вернуться к началу |
|
|
msfaq
Зарегистрирован: 11.03.2004 Сообщения: 19
|
Добавлено: Вт Авг 24 2004 09:53 Заголовок сообщения: |
|
|
хчочется в скриптовой функции которая вызывается на клик по table узнать объект котоорый инициировал событие (tr...td....). Есть ли какой нибудь метод? |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Вт Авг 24 2004 10:12 Заголовок сообщения: |
|
|
It is easy. Try this.
<script>
function showCellContent(cell) {
alert(cell.innerHTML);
}
</script>
<table>
<tr>
<td onClick="showCellContent(this)">One</td>
<td onClick="showCellContent(this)">Two</td>
</tr>
</table> |
|
Вернуться к началу |
|
|
Almaz
Зарегистрирован: 13.08.2004 Сообщения: 45
|
Добавлено: Ср Авг 25 2004 01:52 Заголовок сообщения: |
|
|
Это конечно все хорошо. Но получается все равно OnClick() в каждый <td> писать, ведь так? |
|
Вернуться к началу |
|
|
dAnIK SeNT
Зарегистрирован: 11.06.2004 Сообщения: 43 Откуда: Казань
|
Добавлено: Чт Авг 26 2004 14:08 Заголовок сообщения: |
|
|
Almaz писал(а): | Это конечно все хорошо. Но получается все равно OnClick() в каждый <td> писать, ведь так? |
В Навигаторе есть обработчики OnXXXXX - их можно задать для целого контейнера.
Во всех прочих браузерах - только так. _________________ Cисадмин - образ жизни. Программист - диагноз... |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Чт Авг 26 2004 17:15 Заголовок сообщения: IE only solution |
|
|
In IE only you can do something like this:
<html>
<header>
<script language="JavaScript">
function globalOnClick() {
alert(event.srcElement.innerHTML);
}
</script>
</header>
<body>
<div onClick="globalOnClick()">
<table>
<tr>
<td>One</td>
<td>Two</td>
</tr>
</table>
</div>
</body>
</html> |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Чт Авг 26 2004 17:29 Заголовок сообщения: |
|
|
Here is solution that seems to work in IE 6.X and Mozilla 1.7.X:
<html>
<header>
<script language="JavaScript">
function globalOnClick(evt) {
if (self.event) {
// it is IE
alert(event.srcElement.innerHTML);
} else {
// it is NS
alert(evt.target.innerHTML);
}
}
</script>
</header>
<body onLoad="document.getElementById('tbl').onclick = globalOnClick;">
<table id="tbl">
<tr>
<td>One</td>
<td>Two</td>
</tr>
</table>
</body>
</html> |
|
Вернуться к началу |
|
|
|