2014-02-18 5 views
0

애플리케이션이 있습니다. 번호를 업데이트해야합니다. 번호 컨테이너를 클릭하면 iqu가 jquery로 입력 필드로 변환 한 다음 blur 컨테이너 div 내부의 일반 텍스트로 해제 한 다음 DB에서 업데이트하기 위해 아약스를 트리거하려고하지만 처음에는 흐림도 트리거되지 않습니다 숫자에 대한 forst 시간을 클릭하면, 그것을 입력 필드로 변환하고 측면을 클릭하면 (흐림도) 흐림 기능이 작동하지 않습니다. 다시 클릭하여 측면을 클릭하면 잘 작동합니다.Onblur 이벤트가 처음으로 실행되지 않습니다.

여기 내 코드입니다.

<div onclick="wrap($(this))">999999999</div> 

<script>  
function wrap(sel) 
         { 
         sel.html('<input onblur="unwrap($(this));" value="'+sel.html()+'" />'); 
         sel.attr('onclick',''); 
         } 
         function unwrap(child) 
         { 
         alert('Unwrapping'); 
         } 
</script> 

도움이나 도움이 될 것입니다.

+0

당신이 바이올린을 만들 수 있습니까? – Felix

+0

http://jsfiddle.net/sanplay/CR4Lv/ –

답변

4

당신이 div에 처음 클릭하면, 입력 상자에 포커스를 부여되지 않기 때문입니다. 초점이 없으면 흐림이 없습니다. ... 그것을 만든 후 포커스를 시도

function wrap(sel) { 
    sel.html('<input onblur="unwrap($(this));" value="' + sel.html() + '" />'); 
    sel.attr('onclick', ''); 
    $("input").focus(); 
} 

바이올린 : http://jsfiddle.net/Pwb4y/

0

이 시도 .. 에 javscript 먼저 다음 DOM 호출

<script> 
    function wrap(sel) { 
    sel.html('<input onblur="unwrap($(this));" value="' + sel.html() + '" />'); 
    sel.attr('onclick', ''); 
} 

function unwrap(child) { 
    alert('Unwrapping'); 
} 
</script> 
<div onclick="javascript:wrap(jQuery(this));">999999999</div> 
관련 문제