'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, время: 09:39. |