2014-01-17 2 views
1

$ .get()으로 html을 검색하면 html에는 입력, 텍스트 영역 등과 같은 양식 필드가 포함됩니다. 변경, 붙여 넣기 및 키 누르기 이벤트를 이러한 이벤트는 시작되지 않습니다. jQuery 문서에서는 $ .get()을 사용하여 html을 검색하기 전에 해당 컨트롤 중 적어도 하나가 html에 있어야한다고 나와 있습니다. 또는 사전에 컨트롤이 필요하지 않은 document 요소를 사용할 수 있지만 성능에 큰 문제가 있으므로 Ajax를 호출하기 전에 숨겨진 컨트롤을 페이지에 배치합니다. 내가 "의"연결 얼마나jQuery "on"아약스로드 된 내용을 트리거하지 않음

<div id="divAdminContent"> 
    <form id="frmAdmin"> 
    <input type="text" style="display:none" /> 
    </form> 
</div> 

하고 여기에 있습니다 : : 여기 내 HTML입니다

$("#frmAdmin :input").on("change paste keypress", function (e) 
{ 
    // Do something... 
}); 

답변

5

당신은 이벤트 바인딩 코드가 이벤트를 결합하려고하는 요소를 실행하는 시간 on()를 사용하여 event delegation 필요 존재하지 않습니다.

$("#frmAdmin").on("change paste keypress", ":input", function (e) 
{ 
    // Do something... 
}); 

위임 된 이벤트

위임 된 사건은 나중에 문서에 추가됩니다 하위 요소에서 이벤트를 처리 할 수있는 장점이 있습니다. 위임 이벤트 처리기가 연결되는 시점에 존재하는 것으로 보장된다 요소를 따기 하여 실제로 읽은 자주 연결하고 이벤트 핸들러를 제거 할 필요가 없도록 에 jQuery doc

+0

을 위임 이벤트를 사용할 수 있습니다 위임하지만 분명히 두 번째 선택기를 사용하는 방법을 이해하지 못했습니다. 감사. 이제 작동합니다. – AndroidDev

+0

당신은 환영합니다. – Adil

+0

jQuery 문서의 상태와 달리 $ .get()을 호출하기 전에 html에 컨트롤이 있어야 할 필요는 없습니다. 내가 요소를 제거하고 그것 없이는 작동했습니다. – AndroidDev

관련 문제