@mortefy

Как правильно использовать .get и .click?

function toster (){
        for (i=0; i<=20; i++){
            $.get('a#'+i,function(data){
                $('tabe').append('<tr><td><a class="link" title="'+data.text()+'"></a></td></tr>')
               
                  $('a.link').eq(i).click(function(){
                    Код на клик
                })
            })
    
        }
    
    
    }


В цикле формируем таблицу на основе запроса get в которой есть ссылка, которую мне надо активировать после построения всей таблицы.
в таком варианте он не успевает сделать запрос и построить таблицу, а click функция уже ищет свою жертву.
подскажите начинающему как правильно.

Помогает только если ставить setTimeout в конце цикла, но это не выход:(
  • Вопрос задан
  • 218 просмотров
Решения вопроса 1
fabrykant
@fabrykant
нужен один обработчик клика, и вне функции.
function toster (){
        for (i=0; i<=20; i++){
            $.get('a#'+i,function(data){
                $('tabe').append('<tr><td><a class="link" title="'+data.text()+'"></a></td></tr>')
            })
        }
    }

$("tabe").on( "click", "a.link", function() {
  console.log( $( this ).index() );
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@KuzmenkoArtem
Ну в вашем случае будет поочередно добовлять ссылку и сразу же click
Если хотите что бы у вас полностью построилась таблица а потом уже прокликалось
Сделайте в цикле в конеце условие если i==20 то вызовите функцию которая прокликает все ссылки.

И у вас возможно опечатка "for (i=0; i==20; i++){"
там наверное должно быть "for (i=0; i<=20; i++){"
Ответ написан
thewind
@thewind
php программист, front / backend developer
Вешайте click не в цикле, а в конце. Методом .on()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы