Javascript 在html中引用动态创建的元素
我有一个输入字段(Javascript 在html中引用动态创建的元素,javascript,jquery,html,dynamically-generated,Javascript,Jquery,Html,Dynamically Generated,我有一个输入字段(search\u text),当用户输入超过1个字母时,它会显示数据库中的图像(id=“demo2”) 然后我有一个绘图函数(draw()),它应该在点击图像时(从数据库显示图像后)执行某些操作 问题是图像(id=“demo2”)在Html DOM中不存在,只有在用户输入了超过1个字母之后才存在 现在,我有: function myFunction(){ console.log('success'); alert("I am an alert box!"); con
search\u text
),当用户输入超过1个字母时,它会显示数据库中的图像(id=“demo2”
)
然后我有一个绘图函数(draw()
),它应该在点击图像时(从数据库显示图像后)执行某些操作
问题是图像(id=“demo2”
)在Html DOM中不存在,只有在用户输入了超过1个字母之后才存在
现在,我有:
function myFunction(){
console.log('success');
alert("I am an alert box!");
console.log('success2');
var x = document.getElementById("demo2");
console.log(x);
x.addEventListener("click", myFunct);
console.log(x);
}
function myFunct(){
currentImg=document.getElementById("demo2");
draw();
}
function myFunction2(){
//alert("I am an alert box!");
var x = document.getElementById("search_text").value;
if (x.length >2){myFunction();}
}
当我慢悠悠地键入searchterm时,alertbox就会出现,然后,当我单击图像时,draw()
函数就会工作
当我取出警报时,它将不起作用。不知何故,该警报允许用户等待图像加载/创建。如果没有警报,我如何实现这一点
谢谢 使用setTimeout
使其在单独的线程中运行,否则alert
将执行以下操作:
function myFunction2(){
setTimeout(function(){
var x = document.getElementById("search_text").value;
if (x.length >2){
myFunction();
}
},100)//keep minimal time.
}
建议:
为什么不向DOM添加元素来切换元素的显示,而不是在键入2个字符后创建它?
使用setTimeout
使其在单独的线程中运行,否则alert
将执行以下操作:
function myFunction2(){
setTimeout(function(){
var x = document.getElementById("search_text").value;
if (x.length >2){
myFunction();
}
},100)//keep minimal time.
}
建议:
为什么不向DOM添加元素来切换元素的显示,而不是在键入2个字符后创建它?
使用setTimeout
使其在单独的线程中运行,否则alert
将执行以下操作:
function myFunction2(){
setTimeout(function(){
var x = document.getElementById("search_text").value;
if (x.length >2){
myFunction();
}
},100)//keep minimal time.
}
建议:
为什么不向DOM添加元素来切换元素的显示,而不是在键入2个字符后创建它?
使用setTimeout
使其在单独的线程中运行,否则alert
将执行以下操作:
function myFunction2(){
setTimeout(function(){
var x = document.getElementById("search_text").value;
if (x.length >2){
myFunction();
}
},100)//keep minimal time.
}
建议:
为什么不向DOM添加元素来切换元素的显示,而不是在键入2个字符后创建它?
您可以使用jQuery函数$.on()
将操作绑定到尚未创建的元素。您只需将其指定在代码运行时存在的一个组件上,例如body
元素
看下面的小提琴。HEY
按钮在3秒后才会出现,但由于我们如上所述将click事件绑定到它,因此不会出现任何问题
//这就是如何绑定到动态创建的元素
$('body')。on('click','myclass',myFunction);
setTimeout(函数(){
var button=document.createElement('button');
button.className=“myclass”;
appendChild(document.createTextNode(“HEY”);
$(“#按钮单元格”)。追加(按钮);
}, 3000);
函数myFunction(){
警惕(“它在工作!”);
}
您可以使用jQuery函数$.on()
将操作绑定到尚未创建的元素。您只需将其指定在代码运行时存在的一个组件上,例如body
元素
看下面的小提琴。HEY
按钮在3秒后才会出现,但由于我们如上所述将click事件绑定到它,因此不会出现任何问题
//这就是如何绑定到动态创建的元素
$('body')。on('click','myclass',myFunction);
setTimeout(函数(){
var button=document.createElement('button');
button.className=“myclass”;
appendChild(document.createTextNode(“HEY”);
$(“#按钮单元格”)。追加(按钮);
}, 3000);
函数myFunction(){
警惕(“它在工作!”);
}
您可以使用jQuery函数$.on()
将操作绑定到尚未创建的元素。您只需将其指定在代码运行时存在的一个组件上,例如body
元素
看下面的小提琴。HEY
按钮在3秒后才会出现,但由于我们如上所述将click事件绑定到它,因此不会出现任何问题
//这就是如何绑定到动态创建的元素
$('body')。on('click','myclass',myFunction);
setTimeout(函数(){
var button=document.createElement('button');
button.className=“myclass”;
appendChild(document.createTextNode(“HEY”);
$(“#按钮单元格”)。追加(按钮);
}, 3000);
函数myFunction(){
警惕(“它在工作!”);
}
您可以使用jQuery函数$.on()
将操作绑定到尚未创建的元素。您只需将其指定在代码运行时存在的一个组件上,例如body
元素
看下面的小提琴。HEY
按钮在3秒后才会出现,但由于我们如上所述将click事件绑定到它,因此不会出现任何问题
//这就是如何绑定到动态创建的元素
$('body')。on('click','myclass',myFunction);
setTimeout(函数(){
var button=document.createElement('button');
button.className=“myclass”;
appendChild(document.createTextNode(“HEY”);
$(“#按钮单元格”)。追加(按钮);
}, 3000);
函数myFunction(){
警惕(“它在工作!”);
}
你会拉小提琴吗?你会拉小提琴吗?你会拉小提琴吗?你会拉小提琴吗?谢谢!作品非常感谢你!我决定调用myFunct()
函数,否则您必须单击两次。谢谢谢谢作品非常感谢你!我决定调用myFunct()
函数,否则您必须单击两次。谢谢谢谢作品非常感谢你!我决定调用myFunct()
函数,否则您必须单击两次。谢谢谢谢作品非常感谢你!我决定调用myFunct()
函数,否则您必须单击两次。谢谢