2012-01-16 4 views
1

서버에 대한 Ajax 호출을 통해 앵커 요소를 생성하는 코드를 작성하고 있습니다. 목록이 성공적으로 생성됩니다. 하지만 클래스에 의해 앵커 요소를 선택하려고하면 아무 것도 검색하지 않습니다. 내 코드에 문제가 있습니까? 어떤 제안? 귀하의 모든 의견에 감사드립니다. 감사합니다jQuery : 동적으로 생성 된 앵커 요소를 선택할 수 없습니다.

여기에 내 코드 코드가 실행되는 시점에서

$(document).ready(function(){ 
    generate_link('somelink.php', '#link ul'); 

    $(".mylink").css("border","3px solid red"); //this is not works :-(

}); 

function generate_link(method_url, target) 
{ 

     $.ajax({ 
      type: 'GET', 
      url: method_url, 
      dataType: 'json', 
      success: function(data) { 
      var str=''; 
      for(i=0;i<data.length;i++){ 
       str = str + ('<li><a href="' + data[i]['anchor'] +'" class="mylink"></li>'); 
        } 
      $(target).html(str); 
      } 
     }); 
} 

답변

1

과 같아야합니다 AJAX로 추가 된 요소들. 이런 식으로, 당신은 success 콜백에 빨간색으로 3px의 국경을 설정 라인을 이동하십시오 :

$(document).ready(function(){ 
    generate_link('somelink.php', '#link ul'); 
}); 

function generate_link(method_url, target) 
{ 

     $.ajax({ 
      type: 'GET', 
      url: method_url, 
      dataType: 'json', 
      success: function(data) { 
      var str=''; 
      for(i=0;i<data.length;i++){ 
       str = str + ('<li><a href="' + data[i]['anchor'] +'" class="mylink"></li>'); 
        } 
      $(target).html(str); 
      $(".mylink").css("border","3px solid red"); 
      } 
     }); 
} 

도움이 되었기를 바랍니다.

+0

@ under5hell 소스에서 JavaScript로 생성 된 내용은 볼 수 없습니다. JavaScript가로드 된 후 소스를 조작하므로 링크를 보려면 Developer Tools (F12) 또는 Firefox 용 FireBug를 열어야합니다. 그래도 효과가있다. – Nathan

+0

죄송합니다. 작동하지 않습니다. 링크는 CSS가 적용되지 않은 채 생성됩니다. 브라우저의 view-> source 메뉴를 통해 페이지 소스 코드를 들여다 보았지만 링크는 존재하지 않습니다. 어떻게 될 수 있니? 페이지에 표시되었지만 소스 코드에는 표시되지 않았습니다. -? – under5hell

+1

와우, 미안 .. 내 잘못이야. 마지막 시도에서 실수를했습니다. 이제 당신의 솔루션은 작동합니다 :-) thanks – under5hell

1

의, 링크 페이지에 존재하지 않습니다.

$.ajax() 콜의 success 콜백에있는 요소를 선택하십시오.

+0

당신은 락! 그것은 작동합니다. 당신 덕분에 :-) – under5hell

1

이동 콜백 함수

$(".mylink").css("border","3px solid red"); //this is not works :-(

JQuery와 Ajax 요청을 발행하고, 그 후,하지 아직 응답을 수신 한이 라인은 즉시 상기 광고를 행한다. 이 시점에서 아직 링크가 생성되지 않았습니다. 당신이 AJAX 호출을 수행 할 때 페이지가로드와는, CSS를 적용하지 않을 수 없습니다 때 CSS가 적용되고 있기 때문에

그래서, 당신의 AJAX 호출

function generate_link(method_url, target) 
{ 
    $.ajax({ 
     type: 'GET', 
     url: method_url, 
     dataType: 'json', 
     success: function(data) { 
     var str=''; 
     for(i=0;i<data.length;i++){ 
      str = str + ('<li><a href="' + data[i]['anchor'] +'" class="mylink"></li>'); 
       } 
     $(target).html(str); 
     $(".mylink").css("border","3px solid red"); //added this here 
     } 
    }); 

}

+1

그것은 작동합니다. 감사합니다. :-) – under5hell

관련 문제