2014-02-18 111 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> 
相关问题