2010-08-19 10 views
0

У меня есть таблица, которая отображает динамические строки из сценария на стороне сервера. Каждая строка кодирует различные значения, а первое значение строки содержит ссылку, такую ​​как «Показать/скрыть», когда мы нажмите «показать», он показывает подстрочные строки, и при нажатии «скрыть» он скрывает строки. Теперь «Показать/скрыть» является динамическим, так что их идентификатор есть. Где $ i - это динамическое значение, которое принимает (0,1,2..so on) Теперь, как мы обрабатываем щелчок «Показать/скрыть», для каждой строкиКак обработать событие для созданной гиперссылки Dynamically

var j=0; 
$("#mylink"+j).click(function(){ 


}) 

// В приведенном выше statemnt я могу работать только с «0-й» ссылка и как мы обрабатываем ссылки на 1, 2 и так далее .........

+0

Можете ли вы добавить немного более подробную информацию о том, как вы генерируете HTML? Вы не можете использовать счетчик на стороне сервера и просто поместить значение тогда? – spinon

+0

@ spinon-Iam генерирует Html динамически и Iam, имеющие значения счетчика для каждой ссылки «mylink0» «mylink1» «mylink2» «mylink3» «mylink4». Как обрабатывать событие «click» для любой гиперссылки нажатой – Someone

ответ

3

вместо ID использовать класс, например:

<a class="mylink" href="something.html">My Link</a> 

.live() Затем используйте вместо .click(), как это:

$(".mylink").live('click', function(){ 
    //do something, e.g. $(this).closest('tr').something(); 
}); 

.live() будет прослушивать события из элементов, независимо от того, когда были добавлены, потому что события пузырь до document по умолчанию. .click() фактически привязывает обработчик кликов к найденным элементам в то время, поэтому не работает для будущих элементов.

+0

Это это то, что я использовал в прошлом, но jQuery ninjas говорят, что .live() - неэффективный метод. Любой ответ на эти претензии? – Nic

+1

@melee - Неэффективен по сравнению с тем, что ищет DOM для новых элементов каждый раз, когда они 'добавлено и динамически привязывает обработчик к * каждому *? Для динамических элементов или большого количества элементов с использованием метода, основанного на пузырьках событий, таких как '.live()' does is * much * более эффективно. –

+0

@nick: Действительно Удивительный и Интересно – Someone

Смежные вопросы