什么时候写jQuery插件?

时间:2013-06-19 11:52:50

标签: javascript jquery oop jquery-plugins architecture

这不是一个错字:我问何时而不是如何编写jQuery插件。 : - )

目前,我为项目的几乎每个模块编写了一个jQuery插件。它运行正常,但听起来不对,因为实际上它与jQuery无关,只使用一次。

在我看来,插件必须独立于项目本身或在项目中不止一次使用。所以,我想知道我的架构是否总体上是错误的,我对即将到来的答案感到兴奋。

我的架构现在,在一个简单的博客示例中显示:

后端

  • BlogController.cls.php - 处理用户操作(e.q. show,comment,find)
  • BlogModel.cls.php - 处理数据操作(e.q. getters,setters,save,delete)

前端

路径:/ blog / index /

  • index.htm - HTML的索引模板
  • index.js - JavaScript

路径:/ blog / post / 123 /

  • post.htm - 帖子页面的HTML
  • post.js - JavaScript

示例目标

我想用一条很酷的消息覆盖每个博文的日期和时间,例如“添加2小时前”而不是“在MM / DD / YYYY HH上添加:ii “

所以,我为这个页面编写了插件BlogIndex。插件本身使用另一个插件将时间戳转换为String。以下是我使用插件BlogIndex的方式:

# index.htm
<div id="blog-index">     
    <ul>
        <li>
            <h2>Post Headline</h2>
            <p class="datetime" data-timestamp="1234567890">June, 19th 2013 12:30</p>
        </li>
        <!-- more posts -->
    </ul>
</div>

# index.js
$("#blog-index").BlogIndex({
    liveDateTimePosted: true,       // overwrites "mm/dd/yyyy hh:ii" to "2 hours ago"
    liveDateTimePostedInterval: 500 // refresh every 500 ms
});

对于post.htm我会写插件BlogPost等等。我希望,我能解释一下我在做什么以及为什么我不这么开心。

你会改变什么?您将如何以OOP和模块化方式组织和编写JavaScript?我对每一个解决方案都持开放态度!

提前致谢!

1 个答案:

答案 0 :(得分:0)

“在我看来,插件必须独立于项目本身或在项目中不止一次使用。”就是这样,我想你已回答了自己的问题。