【发布时间】:2017-08-20 22:07:33
【问题描述】:
在运行时,我有 Javascript 创建 html,我想在它们上绑定一个对象,以便稍后传递给一个函数。
类似这样的:
var projects = //(json object)
projects.forEach(function(p) {
$("#container").append("<div onclick=handleClick(p)></div>");
});
function handleClick(p) {
//...
}
似乎这样做会使p 成为字符串[object object] 而不是实际的Project 对象,并且使用JQuery 的内置$.click 函数是一回事。我知道我必须以某种方式在运行时将这些元素绑定到一个函数。
在没有过多搜索和 DOM 访问的情况下执行此类操作的正确方法是什么?
【问题讨论】:
-
您可以使用 jQuery 的
.data()方法将对象存储在相关元素上。然后在点击处理程序中使用$(this).data()来检索它。阅读the.data()doco 并尝试一下;如果仍有问题,请回来。 -
处理对父级的点击,并根据点击的 div 决定。如果您有一个 id 来识别点击了哪个项目,您可以将其用作数据属性,以便您识别
标签: javascript jquery