2013-03-11 2 views
-1

그래서 정적으로 요소를 만들 때 완벽하게 작동하는 많은 Jquery 플러그인을 사용하고 있습니다. 그러나 요소가 .html() 또는 .append()을 통해 만들어지면이 플러그인이 더 이상 작동하지 않는 것 같아서 이유를 파악할 수 없습니다. 어떤 힌트? 미리 감사드립니다. 동적으로 생성 된 요소가 참조가되지 않습니다 ... beacuse이다Jquery 클래스 .html() 후 사용할 수 없습니다.

<a href="javascript:void(0)" title="" onclick="AddElements();">Add</a> 
<div id="Container"></div> 

<script> 
function AddElements() 
{ 
CodeSrouce = '<table cellpadding="0" cellspacing="0" border="0" class="dTable"><thead><th>Name</th><th>Id</th></thead><tbody>'; 
for(i=0;i<3;i++) 
{ 
CodeSrouce += '<tr><td>'+Name[i]+'</td><td>'+Id[i]+'</td></tr>'; 
} 
CodeSrouce += '</tbody></table>'; 
$("#Container").html(CodeSrouce); 
} 
</script> 
+3

당신은'.click()'과 같은 것을 사용하고 있습니까? 이러한 호출은 문서 준비가 완료된 요소에서만 실행됩니다. 동적으로 생성하는 요소는'.on ('click', x)'를 사용해야합니다. – Andy

+2

HTML을 추가 한 후 이벤트/플러그인에 angain을 트리거 했습니까? – DoubleYo

+1

일부 코드를 게시하십시오. – isherwood

답변

0

을 : 그래서 여기

내가 작성하고 플러그인 데이터 테이블을 추가 할 테이블의 예입니다 플러그인에 대한 D

.. ..

다시 HTML 후 ... 요소를 추가 한 후()를 해당 요소의 플러그인을 호출하거나

예) (추가 atepicker ..

입력은 동적 .... 첨부 말할 경우

$("#whatever").append('<input id="test"/>'; 

datepicker이 호출 될 때 이후의 document.ready $('#test').datepicker();를 갖는, 날짜 선택기이 추가 입력을 표시하지 않을 경우에도 요소는 DOMtree 기계가 존재하지 않았다 이것을 위해 당신은 플러그인은 다음과 같이 호출 APPEND 후 다시 플러그인 날짜 선택기()

$("#whatever").append('<input id="test"/>'; 
$('#test').datepicker(); 
+0

이것은 효과가있었습니다! 감사합니다 –

+0

환영합니다 .. 다행 :) :) :) – bipen

1

호출 할 필요가 있도록 :

0123을
$("#myElement").myPlugin(); 

페이지에서 요소 myElement를 찾은 다음 플러그인을 해당 요소에 바인딩합니다. 요소를 찾을 수 없으면 코드는 아무 것도하지 않습니다.

마찬가지로 요소를 만들 때 요소를 만든 후에 코드를 실행해야합니다.

$(function(){ 
    $("body").append("<ul id='myElement'><li>Hello</ul>"); 
}); 

$("#myElement").click(function(){ 
    console.log("This will never get triggered as it needs to be called after the  append"); 
}); 
0

동적으로 생성 된 객체에서 이벤트를 catch하는 방법을 사용하십시오. 일반 이벤트 핸들러는 동적으로 생성 된 객체에서 작동하지 않습니다.

관련 문제