2011-03-17 75 views
1
  1. 如何创建jquery常量文件并从其他js文件访问它?
  2. 我该怎么做?

我有一个字符串列表。 我需要把它们放入一个数组A1中。 然后,我需要为A1中的一些元素创建另一个数组A2。 A2的值将是A1中的元素。 这就像在A1中将字符串分组以形成A2,但我需要访问A1和A2。 用javascript/jquery做这件事的最好方法是什么? 我想如果我把它们放到常量中,如果元素值改变,我不必重复它们。jquery数组常量

例如

A1 = "a", "cat", "hat","b", "bob", "ben", "c", "clay", "course", "d", "e", "done" 

A2["a"] = "cat", "hat" 
A2["b"] = "bob", "ben" 
A2["c"] = "clay", "course" 

如果“猫”变成了“小床”,我不希望有改变它在多个地方...... 什么是最混乱的方式做到这一点,让其他JS这些阵列文件?

回答

3

然后,只需创建.js文件名为constants.js在它下面:

var A1 = ["a", "cat", "hat","b", "bob", "ben", "c", "clay", "course", "d", "e", "done"]; 
var A2["a"] = ["cat", "hat"]; 
var A2["b"] = ["bob", "ben"]; 
var A2["c"] = ["clay", "course"]; 

而且任何其他脚本之前引用它在你的网页的HTML(.js文件):

<script type="text/javascript" src="constants.js"><script/> 

这样,所有的脚本都可以访问constants.js中的变量,并且无论何时想要更改这些变量,都可以去修改constants.js

1

要回答你的第一个问题,这种想法让我想起enumerated types。我会处理你的常数的方式是这样......

var constants = { 
    a : "a", 
    cat : "cat", 
    hat : "hat", 
    bob : "bob", 
    clay : "clay" 
}; 

...你可以通过constants.bobconstants.clay等访问这些...你包括JavaScript文件到您的网页后,为完成传统上:

<script type="text/javascript" src="path-to-js-file/constants.js"></script> 

至于你的第二个问题,这让我想起了一个哈希表。我会考虑这个问题并回来一点。

我希望这会有所帮助。

+0

谢谢你,我喜欢枚举的概念,是有道理的,给它一个镜头 – 2011-03-17 20:32:18

+0

不用客气:) – Hristo 2011-03-17 20:50:58

+0

在服务器端用ruby在rails上做这个服务器有多容易? – 2011-03-22 15:57:03

0

要从其他文件访问常量,一个方便的jQuery方法是'getScript'。使用与从html/jsp/etc文件访问文件时相同的相对路径(即,路径与您放置getScript方法的位置不相关,而是相对于您的域路径)。例如,对于在本地主机的应用程序:8080/myDomain的:

$(document).ready(function() { 
    $.getScript('/myDomain/myScriptsDir/constants.js'); 
    ... 

那么,如果你有这样的一个文件中称为常量。JS:

var jsEnum = { //not really an enum, just an object that serves a similar purpose 
    FOO : "foofoo", 
    BAR : "barbar", 
} 

您现在可以打印出 'foofoo' 与

jsEnum.FOO 
0

我们可以创建一个常数,就像下面。它的工作就像一个静态类

function Helper() { } 

Helper.LocationType = { 
    Division: "Division", 
    Region: "Region", 
    Unit: "Unit", 
    HeadOffice: "HeadOffice", 
    HO: "HO"   
}; 

我们现在可以访问只需键入Helper.LocationType.Division回报Helper.LocationType.Region回报地区