2015-05-01 2 views
1

В моем HTML я эти ссылки:JQuery - передавать данные обратного вызова, из каждого элемента в коллекции

<a class="more-comments-link" id="more-comments-1135" href="#">Show More Comments</a> 
<a class="more-comments-link" id="more-comments-4357" href="#">Show More Comments</a> 

и так далее.

Каждая ссылка имеет тот же класс и уникальный идентификатор.

В JQuery я это делаю:

var $el = $("a.more-comments-link"); 

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

Я попытался это:

$el.click({id: $el.attr('id')}, tst); 

TST это простая функция обратного вызова с параметром события. Все это просто получает идентификатор от первого элемента в коллекции.

+0

'tst' функция обратного вызова? – Barmar

ответ

1

Вобще:

$el.click(tst); 

Внутри tst, this будет целевой элемент, и вы можете использовать this.id, чтобы получить его идентификатор.

+0

Простой и он работает. Спасибо, Бармар. –

0

Как об этом:

function myFunction (id){ 
} 

$("body").on('click', 'a.more-comments-link', function(){ 
    var myId = $(this).attr('id'); 
    myFunction(myId); 
}) 
+0

В самом обратном вызове я позже передам тот же обратный вызов, чтобы он получил имя и не был анонимной функцией –

1

$el.click(tst); 
 

 
function tst(e) 
 
{ 
 
    e.preventDefault(); 
 
    
 
    var id = $(this).attr('id'); 
 
}

+0

То же самое, что ответил Бармар ранее. Вот и все, спасибо вам, ребята. –

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