【问题标题】:what should i use for namespace on jquery widgets?我应该在 jquery 小部件上使用什么命名空间?
【发布时间】:2012-04-08 07:28:59
【问题描述】:

我正在阅读有关使用 jquery ui 小部件工厂创建插件的初学者文档。它需要一个命名的空格名称:

 $.widget( 'dp.list', {

我的问题是……你必须有一个命名空间吗?我的插件应该属于哪种命名空间有约定(桶)吗?某处有清单吗?或者我可以随便编一些我想要的东西吗?

【问题讨论】:

    标签: jquery jquery-ui namespaces widget


    【解决方案1】:

    查看 jQuery UI 库是一个好的开始。这些名称非常直观且有意义。该名称表示将在小部件实例化时创建的 ui 小部件。

    jQuery 小部件框架可以被视为模仿 OO 类功能的工具。

    它为构建复杂的、有状态的插件提供了一个灵活的基础 具有一致的 API。它不仅是为插件设计的 jQuery UI 的一部分,但供需要的开发人员一般使用 创建面向对象的组件而不重新发明通用的 基础设施。 --http://wiki.jqueryui.com/w/page/12138135/Widget%20factory

    如果您有多个模块并且想要避免冲突并提供有意义的分类,则命名空间可能是有意义的

    $.widget('<module_name>.widgetName', {..prototype..} )
    

    例如

    $.widget('cart.paymentProcess', {}) , $.widget('cart.shippingCalculator', {})
    $.widget('catalog.productReviews',{}), $.widget('catalog.productPricing',{}) etc
    

    我还建议阅读这些有用的问题以了解 jQuery 小部件中的命名空间问题:
    JQuery UI: How to call a widget function with its namespace
    Extending jQueryUI widgets without conflicts

    【讨论】:

    • 在调用插件时无法使用命名空间时,命名空间如何帮助解决冲突?如果您将小部件命名为“cart.shippingCalculator”,您仍然可以在 jQuery 对象上将其称为“shippingCalculator”。
    【解决方案2】:

    命名空间是个人的。但是:

    1. 命名空间应该让你理解插件的“意义”
    2. 尽量不要使用“usethispluginforsearhthingsinsidethedom”之类的东西;)

    【讨论】:

      【解决方案3】:

      命名空间是您识别插件的方式。通常,您想使用一些词来轻松描述您的插件的功能,但要保持它相当独特。

      通过描述您的插件,您可以简要地告诉用户他们期望该插件做什么,但如果名称很常见,您可能会遇到另一个同名的插件,这可能会导致一系列问题。

      您也不想要一个没有描述它的创意名称,因为它不清楚插件的作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-22
        • 1970-01-01
        • 2011-04-13
        • 2013-01-06
        • 1970-01-01
        • 2022-01-04
        • 2010-10-24
        相关资源
        最近更新 更多