1

레일로드 4에서 nested_forms를 사용하여 터보 링크 + jQuery 플러그인을 사용하여 페이지로드시 다시 시작합니다. 일단 이벤트를 트리거해야하는 태그가있는 중첩 필드를 추가하면 초기 페이지로드의 내용 만 js 이벤트를 트리거 할 수있는 것처럼 보이지 않습니다.Rails 중첩 된 양식으로 JS 이벤트 처리로 새로 삽입 된 HTML이 없습니다

예 :

$(document).ready(function(){ 
    $('.address_input_type').on('change', function(){ 
    showAppropriateAddressFields(this); 
    }) 
}); 

'.address_input_type가'처음 페이지에 있지만 추가하면 이후에 실패한다면 function showAppropriateAddressFields가 실행됩니다. 어떤 아이디어?

답변

0

클래스에 대한 페이지로드시 DOM을 쿼리하면 해당 클래스의 다른 노드가 나중에 추가 될 때 노드 자체를 업데이트하지 않는 노드의 배열과 유사한 객체를 반환합니다. 처음부터 페이지에 추가하고 스타일을 "display : none"으로 설정하십시오. 사용하는 등, 선택기로 사용 (예 : 컨테이너 사업부로) document보다 가까운 상위 요소를 찾기 위해

$(document).ready(function(){ 
    $(document).on('change', '.address_input_type', function(){ 
    showAppropriateAddressFields(this); 
    }) 
}); 

시도해보십시오 요소를 새로 삽입됨에 따라

+0

@null에는 더 깨끗한 해결책이 있습니다. 그가 제안했듯이, 그것은 더 비싼 작업입니다. – adrichman

+0

또한 페이지로드 후에도 동적으로 필드를 만들었습니다 (여기서 결과를 알지 못했습니다). 프로세스를 설명해 주셔서 감사합니다! – barnett