Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在执行$(';#someId';)操作。单击文档上的(函数()。准备就绪吗?_Javascript_Jquery_Onclick_Document Ready - Fatal编程技术网

Javascript 正在执行$(';#someId';)操作。单击文档上的(函数()。准备就绪吗?

Javascript 正在执行$(';#someId';)操作。单击文档上的(函数()。准备就绪吗?,javascript,jquery,onclick,document-ready,Javascript,Jquery,Onclick,Document Ready,我有一个网站,有大约25-30个不同的页面(页面类型/模板,真的,你可能知道) 对于其中的每一个,我都在$(document).ready(function()…)上连接了内容我只是想知道是否所有这些函数都可以放在同一个.js文件中,这意味着它们中的许多函数将徒劳地执行,因为我平均每页挂接1-2次锚定点击=挂接50个操作,尽管对于任何给定的页面只有大约2个操作是有效的 我希望您能理解。为了清楚起见,这里有一些示例代码 在同一个文件中,我有很多这样的代码,但是连接了不同的id或类 $(docum

我有一个网站,有大约25-30个不同的页面(页面类型/模板,真的,你可能知道)

对于其中的每一个,我都在
$(document).ready(function()…)上连接了内容
我只是想知道是否所有这些函数都可以放在同一个.js文件中,这意味着它们中的许多函数将徒劳地执行,因为我平均每页挂接1-2次锚定点击=挂接50个操作,尽管对于任何给定的页面只有大约2个操作是有效的

我希望您能理解。为了清楚起见,这里有一些示例代码

在同一个文件中,我有很多这样的代码,但是连接了不同的id或类

$(document).ready(function(){
    $('#options-toggler').click(function() {     
        $('#options').toggle(200);
        return false;
    });
});

....
这里的要点是,我有大约50个类似于上面的函数,设置在一个相同的文件中,加载到您访问的每个页面上,但在任何给定页面上,只有1-2个元素连接在一起

这是一种糟糕的做法吗?如果是的话,还有什么办法呢?我无法想象每个模板都有一个.js文件,但请告诉我这方面的最佳做法是什么

如果您需要更多信息,请在评论中告诉我

编辑 上面的文字可能不清楚,但该网站是用Python实现的,而不是javascript。使用javascript,我可以做一些简单的事情,比如更新计数器、向服务器发送保存等。我只看到使用javascript框架的开销,正如对这个问题的至少两个答案所建议的那样。

更新: 如果您不喜欢angular或ember等框架,请尝试使用require js,它将帮助您以模块化的方式加载所需的内容,这样您就可以只加载所需的钩子


这种做法不好吗? 如果你不使用框架或模块化脚本加载(要求),你没有太多的选择

如果是,还有什么选择? 使用框架或模块化脚本加载

您可能应该尝试使用ember.js或angular.js,基本上是任何一种框架。您已经在使用它们了吗?
在不使用任何框架的情况下使用纯javascript创建25-30个不同的页面将是一种极其可怕的体验。

P.S.=>我使用纯JavasCript制作了一个完整的在线购物网站,没有任何框架,这太可怕了,重复的代码太多,调试、增强和所有事情都很困难!一旦我学会了ember,我感到非常轻松!

除非你想转移到一个结构化的框架中,或者你可以将每个页面单独放置ual“连接”到HTML中的

标记中


对于小型站点来说,这通常已经足够了,但是一旦你变得更大,你肯定会想要实现某种框架。

你可以部分模块化,比如下面的例子

main.js

function initializePageOne(){
    $(document).ready(function(){
        $('#options-toggler').click(function() {     
            $('#options').toggle(200);
            return false;
        });
    });
    //Other initialization stuffs relevant to page one
}

function initializePageTwo(){
    $(document).ready(function(){
        $('#options-toggler2').click(function() {     
            $('#options').toggle(200);
            return false;
        });
    });
    //Other initialization stuffs relevant to page two
}
然后在
page1.html
put中

//reference to main.js
<script type="text/javascript">
    initializePageOne();
</script>
这样,代码都在
main.js
中,但初始化是特定于页面的


希望这能有所帮助

你的回答对我来说更像是一个评论。框架对一些人来说是好的,对其他人来说不是。我喜欢控制,所以不感谢框架。你的观点是“我喜欢控制,所以不感谢框架”看起来你误解了一个框架。你可以在一个框架中做任何你想做的事情,但以一种更为成熟和优化的方式,我不会太担心它。Javascript很慢;)Levi是对的,Javascript很慢,而且/尽管这样做的速度惩罚可能没有那么糟糕。然而,一个更好的方法是创建外部JS文件,这些文件在(document)之后加载和执行。准备好了,然后重新考虑选择器(或CSS类,或ID的命名)的策略,以使具有类似行为的东西可以被同一段代码钩住。换句话说,将DOM元素更多地视为对象或类。Javascript并不慢——Javascript快得惊人。DOM速度很慢。尝试在NodeJS中编写一些javascript,它可以在没有DOM的情况下运行。你会看到。我想避免让它们分散在25个文件中,因此我提出了上面的问题。好的,那么你有25个.html文件,对吗?每个都有自己的“连接要求”?小版本:将连接封装到.html文件中。更好的版本:实现一个框架。真诚地,我想感谢您花时间回答,但我必须问一下框架的魅力是什么?我正在用Python实现一个常规站点,它需要一些漂亮的“实时”计数器,并在不重新加载页面的情况下节省开支。添加一个框架-学习它,让它工作,加载额外的文件等等-我只是不明白它的意义。请随便证明我错了。我写这篇文章是出于好意。谢谢。明白了-有时候很难不发出声音。。。恼火的lol,但我们在这里都是朋友。框架的实现相对简单-通常只是在页面上的
标记中包含一个
.js
文件。他们使管理更大的项目变得更容易,tho。在你的第一个项目中,他们确实有一定的入职成本/学习曲线,但之后你会很快意识到好处。然而,这仍然会下载所有功能-其中90%根本不会被使用。从开发/组织的角度来看,这是一个很好的中间立场。@AlexMcMillan我知道你的意思。但OP提到“我无法想象每个模板有一个.js文件”,所以想到了一个平衡的文件;)@AlexMcMillan使用Required js时,您可以执行上述操作,但只加载您想要的,而不是全部functions@Wishy当然但是他的例子没有提到
requirejs
,而是建议将所有函数转储到一个
main.js
文件中,包含在所有页面上。真的!我只是想提供一个解决方案!
//reference to main.js
<script type="text/javascript">
    initializePageTwo();
</script>