2011-02-24 2 views
1

많은 양의 HTML을 삽입하는 큰 AJAX 응답이 있습니다. 이 후에는 양식을로드 할 때 새로 작성한 ID 나 클래스가있는 것처럼 작업 할 수 없습니다.AJAX 호출 후 DOM 요소로 작업 할 수 없습니다.

내 문제 중 하나를 해결하지만 다른 것은 해결하지 못하는 .live()를 조사했습니다.

기본적으로 링크를 클릭하면 AJAX .html()을 통해 삽입 된 ID 또는 클래스로 DIV를 표시하려고합니다.

예 :

코드 : HTML이 생성 된 후

html_out = "<div class='span-1'><a href='#' onClick='show_sub_row(\"#sub_row" + id + "\"); return false;'>[ + ]</a></div>"; 
html_out += '<div class="hidden_sub_row prepend-2" style="display: none;" id="#sub_row' + id + '">'; 
html_out += 'Content'; 
html_out += '</div>'; 
$('#search_results').html(html_out); 

가 그럼 난 시도 :

function show_sub_row(sub_row) { 
$(sub_row).show('fast'); 
} 

은 내가 (A 경고를 할 수 있기 때문에 올바른 ID를 참조 알고 sub_row) 숨겨진 DIV를 검사하기 위해 FireBug를 사용하여 표시된 ID와 일치하는 올바른 ID를 표시합니다. sub_row가 초기화 var에 당신이 여기에 표시 한 코드의 외부 어딘가에 않는

답변

3

, 블록은 다음과 같아야합니다

function show_sub_row(sub_row) { 
$('#sub_row').show('fast'); 
} 

또한, sub_row에 대한 실제 HTML의 ID이 더 할 수있는 # 문자가 포함 진짜 문제를 찾아내는 것은 어렵다. 내가 바보이고 지금 나는 그것이 년후 이유입니다 내 ID 참조의 # 표시를 포함 것으로 나타났습니다 sub_row 전에

html_out += '<div class="hidden_sub_row prepend-2" style="display: none;" id="sub_row' + id + '">';

+0

예 위 라인의 #이 문제였습니다. 지금까지는 그 사실을 눈치 채지 못했습니다. 모든 것을 제거한 후 # 일하고 있습니다. 그 중 한 시간과 나는 몇 시간 동안 그것을 보지 못했습니다. 고맙습니다! – bobcat

+0

전혀 문제 없습니다 ... 동의 하시겠습니까? :) – philwinkle

1

사용 #

function show_sub_row(sub_row) { 
$('#sub_row').show('fast'); 
} 
1

무시를 : 나는 그것을 수정하는 것 일하고있어.

+0

답변으로 게시 할 필요가 없습니다. Philwinkle의 대답에 대해서도 비슷한 의견을 말했고, 제 의견으로는 당신이해야 할 전부입니다. –

관련 문제