2012-11-19 4 views
0

양식 필드에 포커스가있을 때 <div>의 z- 인덱스를 0으로 설정하는 HTML 양식 내에 다음 JavaScript 코드 블록이 있습니다. .인라인 <script> div를 채우기 위해 jQuery html을 사용할 때 두 번째로 초점이 맞지 않는 블록

   <script type="text/javascript"> 
        $('.olabel input').focus(function() { 
         console.log('focus on a form field'); 
         $('.olabel').css('zIndex', '0'); 
         $(this).closest('.olabel').css('zIndex', 1998); 
        });         
       </script> 

I가 다음 마크 업 (텍스트 박스 클래스가 설정에는 Z- 색인 특성이없는)

<div class="field olabel d_field"> 
Address Line 1: <input type="text" name="address11" id="address11" size="20" class="textbox" /> 
/** other HTML fields in here **/ 
</div> 

를 I 또한 라디오 버튼이 눌려진 때 실행 다음 JavaScript가 특정 값. 기본적으로 Yes/No 라디오 버튼에서 'No'를 선택하면 아래 코드가 실행됩니다.

var target = $(this).closest('.d_option_row'); 
// d_address_form is a string variable that contains HTML 
$(target).find('.d_options_detail_d_address_container').html(d_address_form); 

내가 발견하고 문제는 내가 클릭하면 'No (아니오)'를 처음 시간의 console.log('focus on a form field') 올바르게 콘솔에서 기록하는 것입니다. 그러나 '예'를 클릭하여 양식을 숨긴 다음 '아니오'를 클릭하여 양식을 다시 표시하면 콘솔에이 항목이 채워지지 않고 Z- 색인이 이 아닌이 다시 표시됩니다. 자바 스크립트로 작성해야합니다.

jQuery html() 메서드를 사용하는 데 문제가 있습니까?

양식의 마크 업이 표시/숨기기간에 변경되지 않으므로 내 인라인 <script> 태그가 두 번째 발사되지 않는 이유가 있습니까?

+0

jQuery의'.html()'코드는 항상 모든 '

0

나는 문제가 새 요소를 생성 한 후 포커스 이벤트를 첨부하지 않는 것이라고 생각합니다. 시도 :

function eventHandler() { 
    console.log('focus on a form field'); 
    $('.olabel').css('zIndex', '0'); 
    $(this).closest('.olabel').css('zIndex', 1998); 
} 

$(target).find('.d_options_detail_d_address_container').html(d_address_form).focus(eventHandler); 

새 요소를 만들 때 도움이 되나요?