17.05.2012, 10:53
|
|
Интересующийся
|
|
Регистрация: 08.03.2012
Сообщений: 24
|
|
Определение идентификатора
Здравствуйте уважаемые программисты! Помогите решить задачку.
Существуют некие ячейки таблицы со значениями вида:
<td id=слово1>слово1</td>
<td id=слово2>слово2</td>
<td id=слово3>слово3</td>
Необходимо написать js, который бы по клику мышкой на ячейке присваивал переменной значение или идентификатор ячейки, в данном случае они одинаковые, возможно идентификаторы здесь вообще не нужны, пока не знаю.
Нормальным человеческим решением этой задачки было бы следующее. Во время клика мышкой по ячейке, перебрать координаты всех ячеек и сравнить с координатами курсора, найти минимальное расстояние.
Может есть более простецкое решение.
|
|
17.05.2012, 10:55
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от The special one
|
Нормальным человеческим решением этой задачки было бы следующее. Во время клика мышкой по ячейке, перебрать координаты всех ячеек и сравнить с координатами курсора, найти минимальное расстояние.
|
хм.. почему ячейки, а не координаты курсора? и до куда искать расстояние?
|
|
17.05.2012, 11:18
|
|
Интересующийся
|
|
Регистрация: 08.03.2012
Сообщений: 24
|
|
Сообщение от melky
|
хм.. почему ячейки, а не координаты курсора? и до куда искать расстояние?
|
Я плохо знаю js (практически не знаю), но я предполагаю, что ячейки таблицы со значениями хранятся в памяти в виде массива данных. Если сравнивать расстояние между координатами курсора и координатами всех ячеек, то оно будет минимальным для той ячейки, на которой мы кликаем. Так можно определить индекс массива и записать в переменную значение ячейки, которое хранится в массиве по этому индексу. Но это вариант меня не устраивает.
|
|
17.05.2012, 11:37
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
<style>
td {border: solid 1px; cursor: pointer}
</style>
<table id="myTable">
<tr>
<td id="1">first
<td id="2">second
<td id="3">third
<tr>
</table>
<script>
myTable.onclick = function (e) {
var e = e || window.event;
var target = e.target || e.srcElement;
target.innerHTML = target.id
}
</script>
|
|
17.05.2012, 11:48
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от The special one
|
Я плохо знаю js (практически не знаю), но я предполагаю, что ячейки таблицы со значениями хранятся в памяти в виде массива данных. Если сравнивать расстояние между координатами курсора и координатами всех ячеек, то оно будет минимальным для той ячейки, на которой мы кликаем. Так можно определить индекс массива и записать в переменную значение ячейки, которое хранится в массиве по этому индексу. Но это вариант меня не устраивает.
|
так надо расстояние до куда-то искать, или же найти ту ячейку, по которой кликнули?
|
|
17.05.2012, 12:04
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,587
|
|
Сообщение от bes
|
<style>
td {border: solid 1px; cursor: pointer}
</style>
<table id="myTable">
<tr>
<td id="1">first
<td id="2">second
<td id="3">third
<tr>
</table>
<script>
myTable.onclick = function (e) {
var e = e || window.event;
var target = e.target || e.srcElement;
target.innerHTML = target.id
}
</script>
|
Id не нужен.
<style>
td {border: solid 1px; cursor: pointer}
</style>
<table id="myTable">
<tr>
<td>first
<td>second
<td>third
<tr>
</table>
<script>
myTable.onclick = function (e) {
var target = e ? e.target : window.event.srcElement;
target.innerHTML = target.cellIndex
}
</script>
__________________
29375, 35
|
|
17.05.2012, 12:24
|
|
Интересующийся
|
|
Регистрация: 08.03.2012
Сообщений: 24
|
|
Сообщение от melky
|
так надо расстояние до куда-то искать, или же найти ту ячейку, по которой кликнули?
|
Вроде уже не надо, люди написали решение.
Спасибо, друзья! Сейчас пойду в магазин, а потом буду разбираться с вашими скриптами.
|
|
17.05.2012, 12:31
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Aetae
|
Id не нужен
|
Что точно автору нужно было не совсем понятно, цифры я вставил для примера (а так id может быть любым, может он хочет хранить в id некоторые связанные с ячейками значения).
Но обычно, на мой взгляд, id ячеек, действительно, не нужен, а хранение связанных с ячейками значений можно организовать в виде массива.
|
|
17.05.2012, 14:00
|
|
Интересующийся
|
|
Регистрация: 08.03.2012
Сообщений: 24
|
|
Сообщение от bes
|
Что точно автору нужно было не совсем понятно
|
Как это? Я же в первом посте четко изложил что необходимо получить. Нужно мышкой кликнуть на ячейку типа <td>слово№n</td> и в переменную должно записаться значение например
var d = слово№n;
. Сейчас уже стало ясно, что id не нужен.
Я пришел с магазина)), посмотрел эти скрипты, все работает правильно, идея мне ясна, это то, что мне нужно было, еще раз всем спасибо.
Последний раз редактировалось The special one, 17.05.2012 в 14:45.
|
|
18.05.2012, 13:13
|
|
Интересующийся
|
|
Регистрация: 08.03.2012
Сообщений: 24
|
|
Появилась еще одна проблема, это прекрасно работает во всех браузерах кроме фаерфокса. В фаерфоксе вообще никакой реакции на клик мышкой. Как быть?
|
|
|
|