【发布时间】:2009-07-20 20:21:52
【问题描述】:
我该怎么写
var menu = $('.something');
并在外部 .js 文件中使用它,如下所示:
$(menu).attr("class", "active");
我也试过在内联代码之后声明外部js文件,它不起作用。
【问题讨论】:
我该怎么写
var menu = $('.something');
并在外部 .js 文件中使用它,如下所示:
$(menu).attr("class", "active");
我也试过在内联代码之后声明外部js文件,它不起作用。
【问题讨论】:
不要使用var 关键字。这将呈现变量全局。
不过,这不是一个好主意;它弄乱了你的全局命名空间(如果你有多个来自不同来源的 javascript 文件弄乱了全局命名空间并覆盖了彼此的变量,就会产生问题)。
更简洁的解决方案是设置一个具有唯一名称的全局对象,然后为其添加属性。例如:
MyProject = {};
MyProject.menu = $(".something");
然后在其他地方:
$(MyProject.menu).attr("class", "active");
【讨论】:
只要在导入引用它的外部js文件之前定义menu,我不明白为什么它不起作用。喜欢:
<script type="text/javascript">
menu = $('.something');
</script>
<script type="text/javascript" src="/js/fileThatReferencesMenu.js"></script>
试试看。
【讨论】: