我有类似的东西:
var StateName = [obj.data('name')];
StateName.click(function(e){ etc....
所以,它给了我正确的名字(德克萨斯州),但它在控制台中说:
Object usa.Texas has no method 'click'
如果我直接这样写:
usa.Texas.click(function(e){ etc....
有用...
谢谢你
正如您在评论中指出的那样, 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(.......