我有一个应用程序,我需要更新数字,为此,我计划如下,当我单击数字容器时,我将其转换为 jquery 的输入字段,然后在模糊时我想将其关闭为容器div内的纯文本,然后触发ajax在数据库中更新它,但第一次模糊甚至没有触发 我的意思是,如果我第一次单击数字,它会将其转换为输入字段,当我单击外侧(甚至模糊)时,模糊功能不起作用,如果我再次单击并单击外侧,则它工作正常。
这是我的代码。
<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>
任何帮助/建议都会有帮助。
最佳答案
这是因为当您第一次点击div
时,输入框没有获得焦点。没有焦点,就没有模糊。创建后尝试给予它焦点...
function wrap(sel) {
sel.html('<input onblur="unwrap($(this));" value="' + sel.html() + '" />');
sel.attr('onclick', '');
$("input").focus();
}
fiddle :http://jsfiddle.net/Pwb4y/
关于javascript - Onblur 事件不是第一次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21845577/