我有一个类似
的JS对象var map = {
prov1: { paper.path("M182.89887,371.5666L18,.... },
prov2: { paper.path("M182.89887,371.5666L18,.... },
prov3: { paper.path("M182.89887,371.5666L18,....}
};
现在我需要为每个属性分配一些功能,比如
$(map.prov1).hover({
alert("You Assigned A Task to prov1");
});
在一个工作示例中它应该像
$(prov1).hover({
alert("You Assigned A Task to prov1");
});
但是如您所知,我无法直接访问$(prov1)
而$(map.prov1)
会以[{1}}的身份返回!
您能告诉我如何获取对象的[object object]
而不是name
来运行该功能吗?
答案 0 :(得分:1)
我认为你试图通过在这里使用jquery来复杂化它,而不需要它。
你可以简单地做......
var paper = new Raphael('test', 200, 200);
var attrs = { fill: 'blue' }
var map = {
prov1: paper.rect(10,10,20,20).attr( attrs ) ,
prov2: paper.rect(40,40,50,60).attr( attrs ) ,
prov3: paper.rect(50,60,70,80).attr( attrs )
};
map.prov1.click( function() { alert('Hi Im prov1') } );
如果需要迭代对象,可以执行类似
的操作Object.keys( map ).forEach( function( el ) {
map[el].click( function() { alert('Hi, Im ' + el) } );
} );
如果需要,使用迭代的jsfiddle方法
答案 1 :(得分:0)
你需要这样的东西吗?
var map = {
prov1: function() { return paper.path("M182.89887,371.5666L18,.... ")},
prov2: function() { return paper.path("M182.89887,371.5666L18,.... ")},
prov3: function() { return paper.path("M182.89887,371.5666L18,....")}
};
map.prov1();