【发布时间】:2012-01-14 20:14:15
【问题描述】:
所以我有以下代码:
var structures = {
loginStructure : function(){
return structure = [
'<form name="',opts.formClass,'" class="',opts.formClass,'" method="post" action="#">',
'<fieldset class="',opts.fieldsWrapper,'">',
'<fieldset class="',opts.userWrapper,'">',
'<label for="',opts.userInt,'" class="',opts.userLbl,'"><img src="',opts.userIcon,'" alt="',opts.userName,'" /></label>',
'<input type="text" name="',opts.userInt,'" class="',opts.userInt,'" placeholder="',checkNameLenght(opts.userName,namesLenght.userNameLenght,16,'Username'),'" value="" autocomplete="off" />',
'</fieldset>',
'<fieldset class="',opts.passWrapper,'">',
'<label for="',opts.passInt,'" class="',opts.passLbl,'"><img src="',opts.passIcon,'" alt="',opts.passName,'" /></label>',
'<input type="password" name="',opts.passInt,'" class="',opts.passInt,'" placeholder="',checkNameLenght(opts.passName,namesLenght.passNameLenght,16,'Password'),'" value="" autocomplete="off" />',
'</fieldset>',
'<fieldset class="',opts.btnWrapper,'">',
'<button type="submit" name="',opts.btnInt,'" class="',opts.btnInt,'">',checkNameLenght(opts.btnName,namesLenght.btnNameLenght,7,'Login'),'</button>',
'</fieldset>',
'</fieldset>',
'<div class="toogle-button">',
'<ul class="inside">',
'<li class="toogle"><a><img src="assets/gfx/toogle.png" alt="Back" /></a></li>',
'</ul>',
'</div>',
'</form>',
'<div class="toogle-buttons">',
'</div>'
];
}
}
这返回(如果我这样做 console.log(structures.loginStructure))只是一个 function()。有没有办法让它返回我在那里的实际数组?
它的目的是将多个数组定义为对象键,如果可以返回这样的东西,因为它看起来更容易。或者有更好的方法吗?
【问题讨论】:
-
顺便说一句,这与 jQuery 无关 - 但将其标记为表明您可能正在使用 jQuery - 这可能暗示其他人提供依赖于 jQuery 的回答。
-
是的,我也在用jQuery,其实这段代码是一个jQuery插件的一部分。
-
如果所有变量都正确定义,这里似乎可以正常工作:jsfiddle.net/jfriend00/ekZVE.
-
@jfriend00 确实如此。我有以下 jQuery 插件结构:jsfiddle.net/3fbZq/1,并且 opts 是在
$.fn.loginsys.defaults = { ... }中定义的。如果我运行console.log()操作,则在当前状态下不会显示任何内容。如果我让该对象返回一个函数,因为答案的第一部分说它显示为我在控制台中描述的function()。所以也许我的插件结构有问题,这就是它不能正常工作的原因。如果您不介意,可以查看jsfiddle.net/3fbZq/1 并告诉我出了什么问题。 -
@Roland - 我做了你的小提琴,所以它实际上会运行和执行,当我这样做时,它会给出错误,指出
namesLenght对象未定义,因此它中止。另外,您是否意识到正常的拼写是namesLength而不是namesLenght。您可以在此处查看可运行版本和错误:jsfiddle.net/jfriend00/rdbfU。
标签: javascript jquery arrays object