2014-02-18 138 views
0

我有一個應用程序,我需要更新數字,爲此,我計劃好了,當我點擊數字容器時,iam將它轉換成一個帶有jQuery的輸入字段,然後打開模糊我想將它關閉爲容器div內的純文本,然後觸發ajax以更新它在數據庫中,但第一次模糊甚至不會觸發 我的意思是,如果我單擊數字上的最後時間,它將它轉換爲輸入字段,當我點擊一邊(甚至模糊),模糊功能不起作用,如果我再次點擊並單擊側面,那麼它工作正常。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> 
相關問題