将变量传递给外部jQuery

将变量传递给外部jQuery,jquery,variables,external,Jquery,Variables,External,我怎么写 var menu = $('.something'); 并在外部.js文件中使用它,如下所示: $(menu).attr("class", "active"); 我还尝试在内联代码之后声明外部js文件,但它不会工作 不要使用var关键字。这将使变量成为全局变量 不过,这不是一个好主意;它会弄乱全局名称空间(如果有多个来自不同来源的javascript文件弄乱全局名称空间并重写彼此的变量,则可能会产生问题) 一个更干净的解决方案是设置一个具有唯一名称的全局对象,然后向其添加属性。

我怎么写

 var menu = $('.something');
并在外部.js文件中使用它,如下所示:

 $(menu).attr("class", "active");

我还尝试在内联代码之后声明外部js文件,但它不会工作

不要使用
var
关键字。这将使变量成为全局变量

不过,这不是一个好主意;它会弄乱全局名称空间(如果有多个来自不同来源的javascript文件弄乱全局名称空间并重写彼此的变量,则可能会产生问题)

一个更干净的解决方案是设置一个具有唯一名称的全局对象,然后向其添加属性。例如:

MyProject = {};
MyProject.menu = $(".something");
然后在其他地方:

$(MyProject.menu).attr("class", "active");

不要使用
var
关键字。这将使变量成为全局变量

不过,这不是一个好主意;它会弄乱全局名称空间(如果有多个来自不同来源的javascript文件弄乱全局名称空间并重写彼此的变量,则可能会产生问题)

一个更干净的解决方案是设置一个具有唯一名称的全局对象,然后向其添加属性。例如:

MyProject = {};
MyProject.menu = $(".something");
然后在其他地方:

$(MyProject.menu).attr("class", "active");

只要在导入引用它的外部js文件之前定义
菜单
,我不明白为什么它不起作用。比如:

<script type="text/javascript">
    menu = $('.something');
</script>
<script type="text/javascript" src="/js/fileThatReferencesMenu.js"></script>

菜单=$('.something');

试试看。

只要在导入引用它的外部js文件之前定义
菜单
,我不明白为什么它不起作用。比如:

<script type="text/javascript">
    menu = $('.something');
</script>
<script type="text/javascript" src="/js/fileThatReferencesMenu.js"></script>

菜单=$('.something');

试试看。

+1个好提示,太多的全局var建议都是如此+一个很好的提示,太多的全局var建议漂浮在上面了!!