JQuery обработчик клика, который передает атрибут кликаемого объекта в функцию - PullRequest
1 голос
/ 23 июня 2011

У меня есть ссылка как

<a href="#" id="foo" class="bar_link">blah</a>

У меня их много, и значением id является целое число, соответствующее записи в базе данных.

Я хочу создать обработчик кликов для передачи значения атрибута id для конкретной ссылки в функцию при каждом щелчке по этой ссылке.

Вот то, что я пробовал, но у меня нет успеха.

$(".bar_link").live('click', barDetailsInit($(this).attr('id')));

Что ты думаешь? Thx!

Ответы [ 3 ]

4 голосов
/ 23 июня 2011

Это будет работать

$('.bar_link').live('click', function() { 
    barDetailsInit(this.id);
});
2 голосов
/ 23 июня 2011

Упс, вы забыли обернуть событие click аномимным методом.

$(".bar_link").live('click', function() { barDetailsInit($(this).attr('id')); });

Ваша версия вытащит this как любую область действия, в которой работает строка (возможно, «окно»).

1 голос
/ 23 июня 2011

Попробуйте вместо этого:

$(".bar_link").live('click', function(event) {

    barDetailsInit($(this).attr('id')));

});

Обычно вам нужно вызывать вашу функцию из обратного вызова события, тогда в этот момент у вас есть контекст и вы можете вызвать вашу функцию с нужным параметром.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...