Javascript 如何为来自服务器的元素添加EventListener?
如何使用addEventListener(window.onload)添加单击事件 当问题中的标记是从 服务器(通过xmphttp请求,不少于)Javascript 如何为来自服务器的元素添加EventListener?,javascript,onload,addeventlistener,xmlhttprequest,Javascript,Onload,Addeventlistener,Xmlhttprequest,如何使用addEventListener(window.onload)添加单击事件 当问题中的标记是从 服务器(通过xmphttp请求,不少于) 谢谢 将元素插入DOM后,必须应用事件handles您可以尝试处理父元素的事件,这些事件在加载DOM时可用,然后获取与事件相关的元素 <ul id="list"> <li id="first">The first</li> <li id="second">The second</li>
谢谢 将元素插入DOM后,必须应用事件handles您可以尝试处理父元素的事件,这些事件在加载DOM时可用,然后获取与事件相关的元素
<ul id="list">
<li id="first">The first</li>
<li id="second">The second</li>
<li id="third">The third</li>
</ul>
document.getElementById('list').onclick(function(e){
o = e.originalTarget;
// if you click on second li o will bi the same as document.getElementById('first')
// even if li with id "first" is inserted to DOM after creating this event handler to "list"
// so here you can perform actions with it
// hope it will help
});
- 第一个
- 第二个
第三个“>第三个
document.getElementById('list').onclick(函数(e){
o=e.原始目标;
//如果单击第二个LIO,则bi将与document.getElementById('first')相同
//即使id为“first”的li在创建“list”的事件处理程序后插入到DOM中
//因此,您可以在这里使用它执行操作
//希望能有所帮助
});
谢谢大家
我通过将下面的代码添加到XMLHTTP请求的“on success”事件中解决了这个问题,该请求使用来自服务器的元素填充DOM。这对我很管用。
Josh,你让我的头朝着正确的方向移动(尽管看到代码说明会很好),所以我将你的回答标记为答案
if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
var m_sel=document.getElementById("fcat");
if (m_sel) {
var maxi = m_sel.options.length;
for( var i = 0; i < maxi; i++ )
{
var option = m_sel.options[i];
option.addEventListener( "click", toggleElem, true );
}
}
}
if((xmlhttp.readyState==4)和&(xmlhttp.status==200)){
var m_sel=document.getElementById(“fcat”);
如果(穆塞尔){
var maxi=m_sel.options.length;
对于(变量i=0;i
对不起,这不是真的。为什么需要将元素“插入DOM”才能附加事件侦听器?因为DOM首先提供事件。你在开玩笑吗?嗯,你可以在插入文档之前添加处理程序,但显然你必须在添加处理程序之前创建元素。如果您将innerHTML直接写入文档,那么创建和插入的动作是相同的;如果使用DOM方法,则情况并非如此。Josh,“DOM提供事件”与将侦听器“附加”到元素有什么关系?附加侦听器不需要将元素插入到文档中。或者,我们可能相互误解了吗?例如,通过使用Range
及其createcontextalfragment
将字符串转换为DocumentFragement
。此时,DocumentFragment不需要在文档中(但字符串已转换为一个功能完整的DOM树)。然后您可以用它做任何您想做的事情,包括文档注入。但这与我最初给你的答复是毫不相干的。您说过需要将元素插入DOM,而不是HTML字符串。我纠正了您的说法,即元素不需要在文档中才能将事件侦听器附加到它们。还不清楚吗?呃,。单击(函数…
?这就是jQuery,不是吗?onclick
是一个属性,而不是一个函数。