Jquery 单击稍后将创建的侦听器类

Jquery 单击稍后将创建的侦听器类,jquery,jquery-selectors,Jquery,Jquery Selectors,我试图找出是否有可能创建一个类clicklistener。当我创建一个div监听器时,我可以先添加监听器,然后再创建div 所以我想先创建侦听器,然后再添加类。可能吗 html: js: $(“.welcome”)。单击(函数(){ 警惕(“你好”); }); //稍后将加载类相册 //当你把它放在上面时,它就会起作用。。 welcome=document.getElementById(“2”); welcome.innerHTML='Hello'; 我做了一个测试。是的,可以使用: 我使

我试图找出是否有可能创建一个类clicklistener。当我创建一个div监听器时,我可以先添加监听器,然后再创建div

所以我想先创建侦听器,然后再添加类。可能吗

html:


js:

$(“.welcome”)。单击(函数(){
警惕(“你好”);
});
//稍后将加载类相册
//当你把它放在上面时,它就会起作用。。
welcome=document.getElementById(“2”);
welcome.innerHTML='Hello';
我做了一个测试。

是的,可以使用:

我使用
文档
将委托事件处理程序附加到,因为这将拾取与
匹配的所有元素。欢迎使用
选择器,无论它们在页面上的何处。理想情况下,您应该使用最接近的静态元素,该元素将包含所有要匹配的元素。

是…使用事件委托

事件处理程序仅绑定到当前选定的元素;在代码调用.on()时,它们必须存在于页面上。要确保元素存在并且可以选择,请在页面上HTML标记中的元素的文档就绪处理程序中执行事件绑定。如果将新HTML注入页面,请在将新HTML放入页面后选择元素并附加事件处理程序。或者,使用委派事件来附加事件处理程序,如下所述

试试这个

 $(document).on('click','.welcome',function() {
    alert("Hi there");
 });
更妙的是,如果你将事件附加到最近的元素……在你的例子中,它是id为2的div


您可以实现这一点。在jQuery中,这种模式称为委托事件。您可以将单击处理程序附加到
#2
元素,该元素将在添加
.welcome
元素后可用。试试这个:

$('#2').on('click', '.welcome', function() {
    alert("Hi there");
});


注意,在您的小提琴中,我还修改了普通javaScript以使用jQuery方法。如果您已经拥有了它们,您也可以使用它们。

您必须将其委托给最近的现有父级,该父级在页面准备就绪时在dom中可用:

$('div[id="2"]').on('click', '.welcome', function(e) {
    alert("Hi there");
});

tnx,它的工作方式是:D。我必须了解关于Jquery:D的更多信息。请注意,将委托事件附加到
document
live
过去的工作方式,也是它现在被弃用的原因。您应该将事件附加到最近的静态元素,在本例中为
#2
 $(document).on('click','.welcome',function() {
    alert("Hi there");
 });
$('#2').on('click', '.welcome', function() {
   alert("Hi there");
});
$('#2').on('click', '.welcome', function() {
    alert("Hi there");
});
$('div[id="2"]').on('click', '.welcome', function(e) {
    alert("Hi there");
});