javascript - 如何更模块化地编写 jQuery 代码?

标签 javascript jquery django model-view-controller jinja2

我正在使用一个框架 (Django),并且我在编写 HTML 方面有很大的灵 active 。我一直认为我编写 jQuery 的方式可以更好。

以此为例:我们网站上出现提交按钮的大部分地方,我们都会将其转换为更漂亮的按钮(采用原始值和行为并基本上替换它)。这只是一个例子,但有很多用例,我在网站上放置了 html 片段,而总体结构不知道页面上有什么需要由 Javascript 操作。所以 2 部分问题:在 100 页上执行仅在 50 页上使用的东西是否有效(首先搜索包装集的 jQuery 插件),如果我真的想对我的 jQuery 使用模块化方法,如何我去做吗?

最佳答案

如果您问题中的基本问题是关于 Modular programming .我正在学习Douglas Crockford's "JavaScript: The Good Parts" .

来自本书:

Functions are the fundamental modular unit of JavaScript. They are used for code reuse, information hiding, and composition.

因此,在 javascript 中,所有函数都是对象,您可以使用对象字面量符号以这种方式将顶级结构定义为模块:

/* only one global variable to encapsulate all your code */

var MAINOBJ= {};

jQuery(document).ready(function($) {

    /* modules */

    MAINOBJ.formStuff = {
        results : [],
        myFunction: function (){
            // code
            results = MAINOBJ.ajaxStuff.loadResults();
            // code
        }
    }

    MAINOBJ.ajaxStuff = {
        results : [],
        loadResults: function (){
            // code
            return results;
        }
    }

    /* DOM traversing */

    $('#myForm').submit(function(e) {
        e.preventDefault();
        MAINOBJ.formStuff.myFunction();
    });
})

实际上这是我在 wordpress/joomla 等中构建我所有 jquery 代码的方式,我们与很多外国人的 javascript 代码共享相同的范围。

关于javascript - 如何更模块化地编写 jQuery 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8139894/

相关文章:

django - Django中的并发性能(apache2 prefork/mod_wsgi),我在做什么错?

javascript - 小 discord.js 头像图像

javascript - 如何删除淡入?

jquery - 如何在打开新对话框之前关闭所有 jquery ui 对话框?

javascript - 无法使用jquery从表div内的文本框中获取值

jquery 图片自动滑动

python - 提高配置不当的psycopg2(postgresql)

python - 使用 Django (queryset) - postgres 计算一年中期间的天数

javascript/jquery 在 textarea 上触发文本更改事件

javascript - 从字符串中删除每个字符,除了它们之间的数字和字符