Javascript 如何在HTML页面中将图像转换为文本框?
我有一个HTML页面中的小图像。如果我点击图片,它会被转换成一个文本框,并且在文本框旁边会出现两个链接。谁能帮我一个Javascript函数,我可以在Javascript 如何在HTML页面中将图像转换为文本框?,javascript,html,css,Javascript,Html,Css,我有一个HTML页面中的小图像。如果我点击图片,它会被转换成一个文本框,并且在文本框旁边会出现两个链接。谁能帮我一个Javascript函数,我可以在onClick上调用它 为了更好地理解,请查看附件中的图片 try this <span id="my"><img src="image.png" onClick="z()"></span> <span id="dis" style="display:none"> <input type="t
onClick上调用它
为了更好地理解,请查看附件中的图片
try this
<span id="my"><img src="image.png" onClick="z()"></span>
<span id="dis" style="display:none">
<input type="text" id="text"><a href="example.html">submit</a>
<a href="example2.html">cancel</a></span>
<script>
function z()
{
document.getElementById("my").style.display="none";
document.getElementById("dis").style.display="";
}
</script>
试试这个
函数z()
{
document.getElementById(“my”).style.display=“无”;
document.getElementById(“dis”).style.display=“”;
}
下面是一个jquery实现:
HTML:
工作小提琴:尝试以下代码
<!DOCTYPE html>
<html>
<body>
<p id="demo">Click on Image change it into text input.</p>
<script type="text/javascript">
function showStuff() {
// show text input
document.getElementById('mytextbox').style.display = 'block';
// hide image
document.getElementById('myimage').style.display = 'none';
}
</script>
<td class="post">
<img id="myimage" src="mypic.png" name="pic" onclick="showStuff()"/>
<span id="mytextbox" style="display: none;">
<input type="text" name="mytextinput">
</span>
</td>
</body>
</html>
单击图像将其更改为文本输入
函数showStuff(){
//显示文本输入
document.getElementById('mytextbox')。style.display='block';
//隐藏图像
document.getElementById('myimage').style.display='none';
}
请通过以下JSFIDLE获取所需的输出链接:
对于您的信息,您需要添加jQuery代码,如:
$( ".img-class" ).click(function() {
$(this).hide();
$(".text-class").show();
});
<p class="img-class">
<img src="http://s7.postimg.org/a5m750wnr/Screen_Shot_2014_05_29_at_5_06_07_PM.png" />
<p>
<p class="text-class" style="display:none;">
<input type="text" name="textbox"> <a href="#">Submit</a> <a href="#">Cancel</a>
<p>
Html代码如下:
$( ".img-class" ).click(function() {
$(this).hide();
$(".text-class").show();
});
<p class="img-class">
<img src="http://s7.postimg.org/a5m750wnr/Screen_Shot_2014_05_29_at_5_06_07_PM.png" />
<p>
<p class="text-class" style="display:none;">
<input type="text" name="textbox"> <a href="#">Submit</a> <a href="#">Cancel</a>
<p>
tythis:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style>
.container{position: relative;}
.Myimg{height: 50px; width: 50px; position: absolute; top:0; left: 0}
.myform{display: none;position: absolute; top:5px; left: 0}
</style>
<script>
$(document).ready(function() {
$( ".Myimg" ).click(function() {
$( ".myform" ).fadeIn( "slow", function() {
$( ".Myimg" ).fadeOut( "slow");
});
});
$( ".cancel" ).click(function() {
$( ".Myimg" ).fadeIn( "slow", function() {
$( ".myform" ).fadeOut( "slow");
});
});
})
</script>
</head>
<body>
<div class="container">
<img src="http://icons.iconarchive.com/icons/custom-icon-design/office/256/edit-icon.png" class="Myimg" alt="myImg" />
<div class="myform">
<form action="index.html" >
<input type="text" id="myInput" />
<a href="#">submit</a>
<a href="#" class="cancel">cancel</a>
</form>
</div>
</div>
</body>
</html>
测试
.container{位置:相对;}
.Myimg{高度:50px;宽度:50px;位置:绝对;顶部:0;左侧:0}
.myform{显示:无;位置:绝对;顶部:5px;左侧:0}
$(文档).ready(函数(){
$(“.Myimg”)。单击(函数(){
$(“.myform”).fadeIn(“慢”,函数(){
美元(“.Myimg”)。淡出(“缓慢”);
});
});
$(“.cancel”)。单击(函数(){
$(“.Myimg”).fadeIn(“慢”,函数(){
$(“.myform”).fadeOut(“慢”);
});
});
})
这里有一个更通用的解决方案。
这是一个演示,单击图像:
函数InlineEditor(){
变量字段名;
变量切换元件;
var editorTemplate='';
var编辑元素;
this.renderditor=函数(){
var节点=document.createElement(“div”);
node.style.display='none';
node.innerHTML=editorTemplate.replace(“%name%”,this.fieldName);
返回节点;
}
this.setFieldName=函数(fieldName){
this.fieldName=字段名;
}
this.isEditorVisible=函数(){
return(this.editorElement.style['display']!='none');
}
this.ontoggleditor=函数(){
if(this.isEditorVisible())
this.editorElement.style.display='none';
其他的
this.editorElement.style.display='block';
}
this.setToggleElement=函数(元素){
this.toggleElement=元素;
var self=这个;
元素。addEventListener(“单击”,函数(){
self.ontoggleditor();
});
this.editorElement=this.toggleElement.parentNode.appendChild(this.renderEditor());
}
}
testEditor=新的InlineEditor();
testEditor.setFieldName(“测试”);
setToggleElement(document.getElementById(“test”);
HTML
JS
演示
单击时是否会产生某种过渡效果?用链接淡出图像和淡入输入怎么样?请显示您尝试发布的一些代码图像应该是淡出的,在那个地方文本框和两个链接应该出现注意:我删除了Java标记。Javascript不是Java。你想要一个纯JS的解决方案,还是允许jquery?如果是JS,那就完美了,或者我们可以通过jquery实现它,那就好了。
function InlineEditor(){
var fieldName;
var toggleElement;
var editorTemplate = '<input type="text" name="%name%" /><input type="submit" value="Submit" /><input type="reset" value="Reset" />';
var editorElement;
this.renderEditor = function (){
var node = document.createElement("div");
node.style.display = 'none';
node.innerHTML = editorTemplate.replace("%name%", this.fieldName);
return node;
}
this.setFieldName = function (fieldName){
this.fieldName = fieldName;
}
this.isEditorVisible = function(){
return (this.editorElement.style['display'] != 'none');
}
this.onToggleEditor = function(){
if(this.isEditorVisible())
this.editorElement.style.display = 'none';
else
this.editorElement.style.display = 'block';
}
this.setToggleElement = function(element){
this.toggleElement = element;
var self = this;
element.addEventListener("click", function(){
self.onToggleEditor();
});
this.editorElement = this.toggleElement.parentNode.appendChild(this.renderEditor());
}
}
testEditor = new InlineEditor();
testEditor.setFieldName("test");
testEditor.setToggleElement(document.getElementById("test"));
<div class="resim">
<img class="image" src="image.png"/>
</div>
<div class="txt">
<input type="text"/>
</div>
.txt{
display:none;
}
.resim{
width:100px;
height:100px;
cursor:pointer;
}
$(document).ready(function(){
$(".resim").click(function(){
$(".txt").show(function(){
$(".resim").hide();
});
});
});