javascript - jQuery 在动态 HTML 上为 treeview 插件注册点击事件

标签 javascript jquery treeview

我正在使用 JQUery treeview 插件将我的数据显示为树结构。 问题是我正在从 JSON 响应对象动态生成我的 HTML。 这永远不会按预期工作。元素未注册点击事件。

如果我对动态 HTML 进行硬编码,我就能看到预期的结果。我调试并了解到 JQuery 注册了现有 HTML 元素的点击事件,而不是动态形成的元素。请告诉我如何为点击事件注册它们。

function show(jsonResp) {
    //Parsing the JSON response and building HTML on the fly.

    $red = '';
    for (var i = 0; i < treeElements.length; i++) {
        $red = $red + treeElements[i];
    }

    $("#user-records").append($red);
    $("#red").treeview({
        animated: "fast",
        collapsed: true,
        unique: true,
        persist: "cookie",
        toggle: function () {
            window.console && console.log("%o was toggled", this);
        }
    });

}

此 TreeView 代码调用函数以根据用户点击事件展开和折叠。所有这些事件都在 treeview.js 中注册

 this.find("div." + CLASSES.hitarea).click( toggler );

我在 chrome 中调试并检查我的新 div 是否已注册到点击事件。但是当我点击时没有任何反应。

P.S:如果我复制生成的 HTML 元素的控制台日志,并创建一个不同的页面,它会完美地工作。唯一的问题是动态添加 HTML 代码时。我不知道在哪里为这个新添加的动态 HTML 代码注册点击事件。

最佳答案

是你吗?

$(document).on("click", ".selector", function() {
   // your code
});

使用此代码,您可以在生成的内容上绑定(bind)事件。这是一个例子:http://jsfiddle.net/cB8Tf/

关于javascript - jQuery 在动态 HTML 上为 treeview 插件注册点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972052/

相关文章:

JavaScript 和 JSON 效率?我们应该制作一个更小的数组吗?

javascript - Node.js http.createServer如何获取错误

javascript - 有时会出现 Node.js 错误 : Can't set headers after they are sent,

javascript - jQuery 循环遍历数组对象

javascript - 删除任务函数 JQuery 删除键

php - json_encode 不会转义换行符

jquery - 调试 jQuery ajax 500 内部服务器错误

iphone - 如何将家庭 map 添加到我的 iPhone 应用程序?

c# - 当 TreeView 失去焦点时,如何保留 KMLTreeView 项目 'selected'?

c# - 将选定的 TreeView 节点滚动到 View 中