我正在使用 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.js 中注册
this.find("div." + CLASSES.hitarea).click( toggler );
我在 chrome 中进行了调试,并检查了我的新 div 是否已经注册了点击事件。但是当我点击时什么都没有发生。
PS:如果我复制生成的 HTML 元素的控制台日志,并创建一个不同的页面,它会完美运行。唯一的问题是动态添加 HTML 代码时。我不知道在哪里为这个新添加的动态 HTML 代码注册点击事件。