如何在创建元素之前使用“on click”

时间:2016-04-19 13:45:45

标签: javascript jquery d3.js click

我尝试在用户点击时触发事件,然后我使用了JQuery的on click方法。问题是我在onclick函数后创建了我的元素。 我已阅读herehere我们可以在点击和功能之间添加应答器名称,但我的代码返回n.apply is not a function

这是我的JQuery方法:

d3.selectAll("body")
     .on('click', '.child', function(){
                console.log("here");}

以后,这段代码返回了好的元素:

console.log(d3.selectAll("body .child"));

3 个答案:

答案 0 :(得分:1)

尝试此操作:使用$(document)作为父元素来委派点击事件调用

$(document).on('click', '.child', function(){
     console.log("here");
});

答案 1 :(得分:1)

您可以在创建元素时添加处理程序。只需创建一个jQuery对象并将其附加到您需要的任何内容。注意:Click函数也可以是内联的。

Example: https://jsfiddle.net/rfccvgLm/

答案 2 :(得分:0)

似乎 - 就语法还可以 - 处理程序没有注册,因为 d3.selectAll 没有返回任何元素来注册事件