Javascript 非dom元素上的延迟绑定单击事件

Javascript 非dom元素上的延迟绑定单击事件,javascript,Javascript,DOM上很少有元素作为对Web服务的响应加载。 我想在它们上绑定click事件。 我对webservice调用没有任何控制权,因为它是由我不打算修改的框架完成的 $(document).on('click', 'element', function) 这本可以帮助我,但现在使用的jquery版本更旧。 是否有替代或本机javascript解决方案 JavaScript领域的热门方法之一是事件委派,这是有充分理由的。事件委派允许您避免向特定节点添加事件侦听器;而是将事件侦听器添加到一个父级。请参

DOM上很少有元素作为对Web服务的响应加载。 我想在它们上绑定click事件。 我对webservice调用没有任何控制权,因为它是由我不打算修改的框架完成的

$(document).on('click', 'element', function)
这本可以帮助我,但现在使用的jquery版本更旧。 是否有替代或本机javascript解决方案

JavaScript领域的热门方法之一是事件委派,这是有充分理由的。事件委派允许您避免向特定节点添加事件侦听器;而是将事件侦听器添加到一个父级。请参阅:


如何识别这些元素?jQuery的哪个版本?如果>=1.4.2,您可以使用
.delegate()
而不是
.on()
。有一个特定的类与这些元素关联。此代码将执行
$(元素)。委托(选择器、事件、数据、处理程序)
@nnnnnn从jQuery 1.7开始,
.delegate()
已被
.on()
方法取代。但是,对于早期版本,它仍然是使用事件委派的最有效方法。有关事件绑定和委派的详细信息,请参见
.on()
方法。@Amit,我可能遗漏了什么。你介意和我分享一下吗?我有一个编辑选项来纠正它!我只是想引导他。我在评论中的意思是,在一个简单的问题之后,OP解释说元素可以由特定的CSS类识别,而不是节点名(也不是像任何其他标准一样随机的
  • )。所以,你的答案在技术上是正确的,但忽略了OP需要的细节。此外,一旦了解了所有细节,就有可能提供更好的解决方案(但此处不适用)。我的评论是在你知道细节之前“批评”你回答问题的决定。@Amit,你是对的!但我主要关注问题中提到的本机javascript解决方案!此外,在评论中没有提供细节,因此我不能考虑它们!
    document.getElementById("parent-list").addEventListener("click", function(e) {
        // e.target is the clicked element!
        // If it was a list item
        if(e.target && e.target.nodeName == "LI") {
            // List item found!  Output the ID!
            console.log("List item ", e.target.id.replace("post-"), " was clicked!");
        }
    });