Javascript 如何使用innerHTML创建新字段,同时保留以前的字段值?如何完全执行。再次调用前单击?
我发誓,这个问题可能在别的地方,但我找不到!!! 但这里是这样的: Javascript:Javascript 如何使用innerHTML创建新字段,同时保留以前的字段值?如何完全执行。再次调用前单击?,javascript,jquery,innerhtml,slidetoggle,Javascript,Jquery,Innerhtml,Slidetoggle,我发誓,这个问题可能在别的地方,但我找不到!!! 但这里是这样的: Javascript: var update = $("#CalcUpdate"); var content = document.getElementById("CalcContent"); update.click(function() { //update content.innerHTML += "<div style='display: none' class='CalcOn'><inpu
var update = $("#CalcUpdate");
var content = document.getElementById("CalcContent");
update.click(function() { //update
content.innerHTML += "<div style='display: none' class='CalcOn'><input type='field' value='' class='CalcName'/>";
obj = $(".CalcOn");
obj.slideToggle(400,function() {
obj.removeClass();
});
var更新=$(“#计算更新”);
var content=document.getElementById(“CalcContent”);
更新。单击(函数(){//update
content.innerHTML+=“”;
obj=$(“.CalcOn”);
对象滑动切换(400,函数(){
对象removeClass();
});
}))
HTML:
更新
这背后有两个问题:
您正在使用jquery,所以请使用它!:)以下是我如何更新您的脚本:
var$update=$(“#计算更新”);
var$content=$(“#CalcContent”);
$update。单击(函数(){//update
var$obj=$(“”);
$obj.appendTo($content.slideToggle(400,function(){$obj.removeClass()});
});
注意事项:
- 使用jquery查找内容,类似于查找更新区域的方式
- 使用jquery构造新对象(
),而不是使用innerHTML并添加字符串$obj
- 使用jquery
/append
将appendTo
添加到$obj
而不是使用innerHTML$content
- 直接使用$obj执行
(因此,无需查找)。这修复了快速单击时出现的操作时间/顺序问题滑动切换
update.click(function() { //update
var showinput = $("<div style='display: none' class='CalcOn'><input type='field' value='' class='CalcName'/>").insertBefore(content);
obj = $(".CalcOn");
obj.slideToggle(400,function() {
obj.removeClass();
});
update。单击(函数(){//update
var showinput=$(“”)。插入之前(内容);
obj=$(“.CalcOn”);
对象滑动切换(400,函数(){
对象removeClass();
});
var $update = $("#CalcUpdate");
var $content = $('#CalcContent');
$update.click(function() { //update
var $obj = $("<div style='display: none' class='CalcOn'><input type='field' value='' class='CalcName'/>");
$obj.appendTo($content).slideToggle(400, function() { $obj.removeClass() });
});
update.click(function() { //update
var showinput = $("<div style='display: none' class='CalcOn'><input type='field' value='' class='CalcName'/>").insertBefore(content);
obj = $(".CalcOn");
obj.slideToggle(400,function() {
obj.removeClass();
});