Javascript 将侦听器添加到js创建的元素。jquery无法工作

Javascript 将侦听器添加到js创建的元素。jquery无法工作,javascript,jquery,Javascript,Jquery,我需要将侦听器附加到通过js dom操作创建的元素。我认为这就是jquery的目的,但下面的示例不起作用 它适用于初始元素,但不适用于通过JS添加的任何元素。添加的元素具有正确的类名 <div id = "tag_options"> <div class = 'tag_option'>test</div> </div> function greet(event) { alert("Hello "); } $("[class='tag_o

我需要将侦听器附加到通过js dom操作创建的元素。我认为这就是jquery的目的,但下面的示例不起作用

它适用于初始元素,但不适用于通过JS添加的任何元素。添加的元素具有正确的类名

<div id = "tag_options">
    <div class = 'tag_option'>test</div>
</div>


function greet(event) { alert("Hello "); }
$("[class='tag_option']").on("click", {}, greet);

测试
函数问候(事件){alert(“Hello”);}
$(“[class='tag_option']”)在(“click”{},greet)上;
使用委托,例如:

$(document.body).on("click","[class='tag_option']", greet);
试试这个:

function greet(event) { alert("Hello "); }

$("#tag_options").on("click", ".tag_option", greet);

这些文档描述了如何使用
.on()
来处理将来要添加的元素。你可以从那里开始。当$.on的第二个参数不是选择器=>直接事件处理程序时,当$.on的第二个参数是选择器时,事件为委派事件。在代码中,您正在声明一个直接事件处理程序。这就是为什么它不起作用的原因。这个的可能副本很好,谢谢。@user984003:broading应该解释一下,您应该将处理程序绑定到包含
tag_选项
元素的最近的祖先。@CrazyTrain ya我可以,但尽可能少地给出描述,我会这样做same@HMR是的,但在OP问题之后,最接近的静态容器是什么?#tag_选项是否静态,谁知道@疯狂训练:是的,如果OP不需要监视所有
.tag\u选项
,这将提高性能。但是OP提供的信息太少,所以我认为这个答案还是不错的。从其他回答来看:$(“#tag_options”)需要是静态的,否则使用$(document.body)或其他静态的祖先。