Javascript 如何在一个JS文件中使用多个函数

Javascript 如何在一个JS文件中使用多个函数,javascript,jquery,function,Javascript,Jquery,Function,不久前,一位网页设计师向我展示了如何在一个JS文件上组织我的功能。然而,我很难让它工作。页面上没有错误,但函数似乎没有运行 其思想是,如果项(类)在HTML中,我运行functions.js中的JQuery函数,如果不是,则无需执行任何操作。我已经创建了一个代码笔,所以人们可以看一看 欢迎任何帮助:) (函数($){ var siteScripts={ /* *函数onReady */ onReady:function(){ 这个是boxOne(); 这个.box2(); }, boxOne:

不久前,一位网页设计师向我展示了如何在一个JS文件上组织我的功能。然而,我很难让它工作。页面上没有错误,但函数似乎没有运行

其思想是,如果项(类)在HTML中,我运行functions.js中的JQuery函数,如果不是,则无需执行任何操作。我已经创建了一个代码笔,所以人们可以看一看

欢迎任何帮助:)

(函数($){
var siteScripts={
/*
*函数onReady
*/
onReady:function(){
这个是boxOne();
这个.box2();
},
boxOne:函数(){
如果($('.box one')。长度){
$('.box one p').html('Canary one');
}
},
框二:函数(){
如果($('.box two').length){
$('.box two p').html('Canary two');
}
}
};
$().ready(函数()){
//jQuery.noConflict();
onReady();
});
函数makeShort(){
}
})(jQuery)
你好,世界
我爱我的金丝雀

我爱我的金丝雀


只需将jQuery对象传递给函数:

(function ($) {
    ...
})($);
这将解决您原来的问题

另外,
boxOne
boxTwo
功能中的选择器似乎是错误的,因为它们选择了所有段落,而不仅仅是对应框中的段落

boxOne
中的选择器应为:

$('.box-one p')
$('.box-two p')
框2中,它应该是:

$('.box-one p')
$('.box-two p')

您的问题是什么?不知道我的函数为什么不能运行?您收到消息的原因是
指向codepen.io的链接必须附带代码。
。因此,您提出的问题应始终是独立的。一个完整的工作示例,例如在
codepen.io
中总是很有帮助的,但它不应该取代您问题中的代码。只要代码有效并加载依赖项(如库或插件),那么函数放在哪里并不重要。谢谢,但这不是我试图解决的问题。代码笔小提琴显示应该发生的事情。:)那你有什么问题?它根本没有按原样运行。@user143315您编写的“函数似乎没有运行”,这就是meskobalazs解决的问题。如果有其他错误,您需要准确地描述它。您想知道为什么您的函数无法运行,@meskobalazs的回答实际上使它工作。要么通过$jQuery,要么通过jQuery。我也被这方面的反对票弄糊涂了。它回答了这个问题,并进一步说明了为什么选择器的行为(我们认为)应该如此。