javascript - 使用 d3 js 库的 data 方法将事件绑定(bind)到动态生成的内容

标签 javascript d3.js

我正在尝试将点击事件绑定(bind)到使用 d3.js 数据动态生成的元素。

d3.select("#mylist").selectAll('li').data(data_arr).enter().append("li").html(
        function(d)
        {
            var element = document.createElement('div');
            element.innerHTML = '<div id="innerDiv"></div>';

            var divToClick = element.querySelector('#innerDiv');
            //Using jquery to get cross browser event binding
            $(divToClick).click(function(){
                alert('hello!');
            });



            return element.innerHTML;
       });

我知道问题是我返回一个字符串(innerHTML),但如果我返回该元素,它就不起作用。有什么帮助吗?

(真正的代码要复杂得多,我只是在这里复制了重要部分)。

最佳答案

更 d3 的方法是这样做

d3.select("#mylist").selectAll('li').data(data_arr).enter()
  .append("li")
  .append("div")
  .on("click", function() { alert("hello!"); });

关于javascript - 使用 d3 js 库的 data 方法将事件绑定(bind)到动态生成的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707452/

相关文章:

javascript - jQuery 触发器单击事件不适用于 div

d3.js - 在 D3 强制布局节点标签中插入换行符

javascript - D3 地理 map 缩放无法正常工作(Canvas)

javascript - 使用 JSON 更新 D3 饼图

javascript - D3.JS:如何制作线条动画

javascript - 如何在 JavaScript 中按类获取元素?

javascript - CKEditor 文件浏览器作为图像对话框上的选项卡

javascript - 这个 AJAX 请求有什么问题吗?

javascript - 为什么垂直滚动条总是可见

javascript - 带三元组的 Google 闭包编译器 : ERROR - inconsistent return type