2014-11-24 58 views
0

我动态地将一个锚点标签列表添加到ID为join的div中。出于某种原因,我的jQuery处理程序(它是一个处理程序?)不处理点击。jQuery点击不工作/注册

$(document).ready(function() { 
    $("#join").click(function() { 
     console.log("Clicked"); 
    }); 
}); 

“Clicked”没有出现在我的控制台中。 Google搜索了大约2个小时后,我现在头痛很大。

在此先感谢。

+0

你能添加你的html文件吗? – Yaje 2014-11-24 03:43:51

+0

你是否包含jQuery库? – 2014-11-24 03:45:06

+0

是否动态创建元素'#join' ..也存在元素'#join'的多个实例 – 2014-11-24 03:46:19

回答

0

尝试

$(document).ready(function() { 
    $(document).on.('click','#join',function() { 
     console.log("Clicked"); 
    }); 
}); 

注意:这将只检测#join元素的第一个实例。 您可能需要使用的,而不是ID

你需要使用文件作为选择检测生成的元素

+0

工作!谢谢! – user3650841 2014-11-24 04:07:08

+0

使用它可以获取信息(如.data(“target”))吗? $(this).data(“target”)不起作用。 – user3650841 2014-11-24 04:08:30

+0

它会。如果你使用类而不是id – Yaje 2014-11-24 04:14:54

0

当您从选择器创建处理程序时,将处理程序添加到选择器(和处理程序)运行时与选择器匹配的所有元素。如果随后添加了现在会与选择器匹配的元素,则处理程序不会自动添加。选择器第一次运行时,这些元素不存在。

添加新元素时,在添加新元素时添加点击处理程序。

也强烈建议页面中不要有多个具有相同“ID”值的元素。考虑使用一个类来指示分组。

4

您也可以尝试这样的,这是你可以拥有的最有效的方式类控制点击事件。

$(document).ready(function() { 
    $("#join").on('click',function() { 
     $('#join').off('click'); 
     console.log("Clicked"); 
    }); 
});