我有类似的东西:
var StateName = [obj.data('name')];
StateName.click(function(e){ etc....
所以,它给了我正确的名字(德克萨斯州),但它在控制台中说:
Object usa.Texas has no method 'click'
如果我直接写它:
usa.Texas.click(function(e){ etc....
它有效......
谢谢
答案 0 :(得分:0)
正如您在评论中指出的那样,obj.data('name')返回一个字符串。您不能像这样访问JavaScript对象,但可以通过传递字符串来访问它的属性。
你可以这样做:
// Get Name, split to extract the property portion
var StateName = obj.data('name').split('.')[1];
// Bind to specific state
usa[StateName].click(......
如果您需要对象的名称(美国),您可以将所有(假设的)国家/地区对象嵌套在另一个对象中。
// Wrap in object
var countries = {usa: { texas: jQuery() }}
// Get Name, split to extract portions
var CountryState = obj.data('name').split('.');
var Country = CountryState[0];
var State = CountryState[1];
// Bind to country / state
countries[Country][State].click(.......