Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.05.2012, 10:53
Аватар для The special one
Интересующийся
Отправить личное сообщение для The special one Посмотреть профиль Найти все сообщения от The special one
 
Регистрация: 08.03.2012
Сообщений: 24

Определение идентификатора
Здравствуйте уважаемые программисты! Помогите решить задачку.
Существуют некие ячейки таблицы со значениями вида:
<td id=слово1>слово1</td>
<td id=слово2>слово2</td>
<td id=слово3>слово3</td>

Необходимо написать js, который бы по клику мышкой на ячейке присваивал переменной значение или идентификатор ячейки, в данном случае они одинаковые, возможно идентификаторы здесь вообще не нужны, пока не знаю.

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

Может есть более простецкое решение.
Ответить с цитированием
  #2 (permalink)  
Старый 17.05.2012, 10:55
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от The special one
Нормальным человеческим решением этой задачки было бы следующее. Во время клика мышкой по ячейке, перебрать координаты всех ячеек и сравнить с координатами курсора, найти минимальное расстояние.
хм.. почему ячейки, а не координаты курсора? и до куда искать расстояние?
Ответить с цитированием
  #3 (permalink)  
Старый 17.05.2012, 11:18
Аватар для The special one
Интересующийся
Отправить личное сообщение для The special one Посмотреть профиль Найти все сообщения от The special one
 
Регистрация: 08.03.2012
Сообщений: 24

Сообщение от melky Посмотреть сообщение
хм.. почему ячейки, а не координаты курсора? и до куда искать расстояние?
Я плохо знаю js (практически не знаю), но я предполагаю, что ячейки таблицы со значениями хранятся в памяти в виде массива данных. Если сравнивать расстояние между координатами курсора и координатами всех ячеек, то оно будет минимальным для той ячейки, на которой мы кликаем. Так можно определить индекс массива и записать в переменную значение ячейки, которое хранится в массиве по этому индексу. Но это вариант меня не устраивает.
Ответить с цитированием
  #4 (permalink)  
Старый 17.05.2012, 11:37
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 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>
Ответить с цитированием
  #5 (permalink)  
Старый 17.05.2012, 11:48
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от The special one Посмотреть сообщение
Я плохо знаю js (практически не знаю), но я предполагаю, что ячейки таблицы со значениями хранятся в памяти в виде массива данных. Если сравнивать расстояние между координатами курсора и координатами всех ячеек, то оно будет минимальным для той ячейки, на которой мы кликаем. Так можно определить индекс массива и записать в переменную значение ячейки, которое хранится в массиве по этому индексу. Но это вариант меня не устраивает.
так надо расстояние до куда-то искать, или же найти ту ячейку, по которой кликнули?
Ответить с цитированием
  #6 (permalink)  
Старый 17.05.2012, 12:04
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 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
Ответить с цитированием
  #7 (permalink)  
Старый 17.05.2012, 12:24
Аватар для The special one
Интересующийся
Отправить личное сообщение для The special one Посмотреть профиль Найти все сообщения от The special one
 
Регистрация: 08.03.2012
Сообщений: 24

Сообщение от melky Посмотреть сообщение
так надо расстояние до куда-то искать, или же найти ту ячейку, по которой кликнули?
Вроде уже не надо, люди написали решение.

Спасибо, друзья! Сейчас пойду в магазин, а потом буду разбираться с вашими скриптами.
Ответить с цитированием
  #8 (permalink)  
Старый 17.05.2012, 12:31
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Aetae
Id не нужен
Что точно автору нужно было не совсем понятно, цифры я вставил для примера (а так id может быть любым, может он хочет хранить в id некоторые связанные с ячейками значения).
Но обычно, на мой взгляд, id ячеек, действительно, не нужен, а хранение связанных с ячейками значений можно организовать в виде массива.
Ответить с цитированием
  #9 (permalink)  
Старый 17.05.2012, 14:00
Аватар для The special one
Интересующийся
Отправить личное сообщение для The special one Посмотреть профиль Найти все сообщения от The special one
 
Регистрация: 08.03.2012
Сообщений: 24

Сообщение от bes Посмотреть сообщение
Что точно автору нужно было не совсем понятно
Как это? Я же в первом посте четко изложил что необходимо получить. Нужно мышкой кликнуть на ячейку типа <td>слово№n</td> и в переменную должно записаться значение например
var d = слово№n;
. Сейчас уже стало ясно, что id не нужен.
Я пришел с магазина)), посмотрел эти скрипты, все работает правильно, идея мне ясна, это то, что мне нужно было, еще раз всем спасибо.

Последний раз редактировалось The special one, 17.05.2012 в 14:45.
Ответить с цитированием
  #10 (permalink)  
Старый 18.05.2012, 13:13
Аватар для The special one
Интересующийся
Отправить личное сообщение для The special one Посмотреть профиль Найти все сообщения от The special one
 
Регистрация: 08.03.2012
Сообщений: 24

Появилась еще одна проблема, это прекрасно работает во всех браузерах кроме фаерфокса. В фаерфоксе вообще никакой реакции на клик мышкой. Как быть?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
GoogleMapAPI определение положения центра карты и высоты namo86 Библиотеки/Тулкиты/Фреймворки 1 21.01.2011 16:49
Определение размеров клиентской части браузера Шацкий Денис Общие вопросы Javascript 10 09.01.2011 19:27
Определение статуса сервера. Нужен JS-аналог скрипта на PHP akukinakis Общие вопросы Javascript 1 19.08.2010 11:20
Определение координат мыши! sat-lin Events/DOM/Window 2 18.12.2009 11:12
Определение количества плагинов Александр 2009 Общие вопросы Javascript 19 26.03.2009 00:41