'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, используются вместо классов временно, наследие, так сказать |
this.id
|
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>
|
спасибо, этот момент понял)
Теперь другая проблема: Поскольку для #setOne как правило больше одного <tr> в наборе, теперь непонятно как правильно передать функции указатель, что именно в этот элемент с таким то индексом нужно записать значение даты. Можно создать кастомный атрибут для кликнутого элемента, и в функции найти по этому атрибуту. Но думаю, этот вариант не оптимален. Пробовал установить данные через метод $.data(), но не получилось установить для конкретного индекса в наборе - только для всего селектора. |
У jquery есть index, у tr - tr.rowIndex.
|
| Часовой пояс GMT +3, время: 08:27. |