Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.06.2013, 15:14
Новичок на форуме
Отправить личное сообщение для bannndi Посмотреть профиль Найти все сообщения от bannndi
 
Регистрация: 25.03.2013
Сообщений: 7

'click' для разных селекторов
Добрый день!

использую jQuery 1.5.2
Пытаюсь реализовать следующую вещь:


назначаю клик для двух разных селекторов, чтобы не дублировался вызов функции. Различие этих селекторов в следующем:
#setAll должен установить дату для всех <td> в наборе $('#setAll')
#setOne должен установить дату только для своего <td> $('#setOne'), т.е. по которому непосредственно кликнули.

Подозреваю, что нужно сравнивать $(this) в обработчике, но пока не получается достичь нужного результата. Может быть, я даже пытаюсь сделать не совсем оптимальную вещь.

$('body').delegate('#setAll.date, #setOne.date', 'click'
    ,function(){

// если клик по #setOne, то дата должна устанавливаться только в эту ячейку

// если клик по #setAll, дата должна устанавливаться во все ячейки набора #setAll



    }); 
}



Вопрос в следующем - каким условием я могу определить, что клик был по #setAll или #setOne?


PS: id #setAll и #setOne, используются вместо классов временно, наследие, так сказать
Ответить с цитированием
  #2 (permalink)  
Старый 03.06.2013, 15:41
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

this.id
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 03.06.2013, 15:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

bannndi,
Вариант...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>

<body>
<select id="setAll" name="" size="1" class="date">
<option value="1">test</option>
</select>
<select id="setOne" name="" size="1" class="date">
<option value="2">test</option>
</select>
<script>
$('body').delegate('#setAll.date, #setOne.date', 'click'
    ,function(){
alert([this.id,$(this).attr('id')])
    });
</script>
</body>

</html>
Ответить с цитированием
  #4 (permalink)  
Старый 03.06.2013, 17:43
Новичок на форуме
Отправить личное сообщение для bannndi Посмотреть профиль Найти все сообщения от bannndi
 
Регистрация: 25.03.2013
Сообщений: 7

спасибо, этот момент понял)

Теперь другая проблема:
Поскольку для #setOne как правило больше одного <tr> в наборе, теперь непонятно как правильно передать функции указатель, что именно в этот элемент с таким то индексом нужно записать значение даты.

Можно создать кастомный атрибут для кликнутого элемента, и в функции найти по этому атрибуту. Но думаю, этот вариант не оптимален.

Пробовал установить данные через метод $.data(), но не получилось установить для конкретного индекса в наборе - только для всего селектора.
Ответить с цитированием
  #5 (permalink)  
Старый 03.06.2013, 18:02
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

У jquery есть index, у tr - tr.rowIndex.
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX - Контент только для основной категории, но не для субкатегорий или страниц nightkon AJAX и COMET 5 21.11.2016 13:22
Реализация игрового поля для игры "Точки" last-art Events/DOM/Window 7 22.04.2012 03:18
Фреймворк для разработки расширений для Chrome chernikov Библиотеки/Тулкиты/Фреймворки 0 05.03.2012 17:51
live click выполняется несколько раз hara jQuery 9 09.06.2010 10:58