Ну, рекурсия происходит из-за срабатывания
$('a[href=#2]').trigger('click');
Когда этот элемент выбирается из события, он вызывает еще одно событие, которое будет обрабатываться тем же кодом и так далее.
Это должно работать:
$(document.ready)(function(){
$('.cross-link').click(function(){
#('a[href=#2').click();
});
});
Кроме того, с точки зрения производительности более оптимальным является добавление идентификатора ко второй ссылке, поскольку выбор по идентификатору выполняется быстрее, чем по атрибуту.Если вы все еще хотите выбрать href, и есть только одна такая ссылка:
#('a[href=#2 :first').click();