双击实现文本元素修改

此效果多应用于后台栏目名称修改上,双击以创建input元素,onblur事件实现异步调用无刷新提交。

JS部分:

<code><script type=”text/javascript”>
function showInput(element)
{
var defaultValue = element.innerHTML;   //取得默认内容
var inputEle= document.createElement(‘input’);   //创建input元素
inputEle.type = ‘text’;   //添加类型
inputEle.value=defaultValue;
inputEle.className=”tip”;
element.innerHTML = ”;
element.appendChild(inputEle);   //添加子元素
inputEle.focus();   //获得焦点
inputEle.onfocus = function()
{
element.ondblclick=”;//取消元素的双击事件
}
inputEle.onblur = function()
{
element.innerHTML = this.value ? this.value : defaultValue;   //触发时判断值是否为空
var any= $(this).attr(‘value’);
$.ajax({
type: “POST”,
url: “insert.php”,
data: “name=”+ any,
success: function(){
$(“#show”).prepend(“<li>提交成功:”+any+”</li>”);
$(“#show li:first”).fadeIn(“slow”);
}
});
element.ondblclick = function()//还原
{
showInput(this);
}
}
}
</script></code>

样式:

<style type=”text/css” media=”all”>
#show{
margin-top:100px;
width:300px;
height:200px;
border:1px solid #F5F5F5;
overflow:hidden;
}
#show li{
background:#FDF5E6;
list-style:none;
}
.tip{
border:2px solid #FDF5E6;
}
</style>

HTML部分:

<span>双击下面文字:</span>  <br /><br />
<span ondblclick=”showInput(this)” >天道酬勤</span> <br />
<div id=”show”></div>

注意,该效果的实现用到了jQuery,请在HTML头部包含之。

点击预览效果.

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注