0

我有类似的东西:

var StateName =  [obj.data('name')];
StateName.click(function(e){ etc....

所以,它给了我正确的名字(德克萨斯州),但它在控制台中说:

Object usa.Texas has no method 'click' 

如果我直接这样写:

usa.Texas.click(function(e){ etc....

有用...

谢谢你

4

1 回答 1

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(.......
于 2013-04-23T15:25:31.387 回答